2008-12-17 38 views

回答

6

Currying首先是一個數學概念。這是隻是觀察:對於任何ň進制功能˚F:S ×內容S ň → [R,您可以定義一個新的功能fprime(剛發現一個錯誤降價!)與n-1其中第一個參數由常數替換的參數。所以,如果你有一個函數add(a,b),您可以定義一個新的功能,如add1(b)

add1(b) ::= add(1, b)

...閱讀「:: =」作爲「被定義爲」。

A 關閉更多的是一個編程概念。 (當然,編程中的所有內容都是一個數學概念,但由於編程,閉包變得很有趣)。當你構造一個閉包時,你綁定了一個或多個變量;您正在創建一些代碼,其中包含一些與其相關的變量。

的關係是你可以使用閉包,以實現柯里:你可以通過在其中首先參數綁定到1

+0

你所描述什麼是封閉構建你上面的add1功能是局部的評價而不是捲曲。相關,但不完全一樣。 – 2012-12-13 01:44:50

相關問題