闭合和翘曲的区别和可能的相似之处是什么?

时间:2008-12-17 15:29:35

标签: closures currying

我已经阅读了一些关于闭合和翘曲的帖子,但我觉得我找不到答案。那么封闭和蜷缩的差异和可能的相似之处是什么?谢谢你的帮助:)

1 个答案:

答案 0 :(得分:6)

Currying 首先是一个数学概念。对于任何 n -ary函数 f:S 0 ×... S n →R ,你可以用 n-1 参数定义一个新函数 fprime (刚刚发现了一个降价错误!),其中第一个参数被一个常量替换。因此,如果您有一个函数add(a,b),则可以将新函数add1(b)定义为

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

...阅读“:: =”为“被定义为。”

闭包更像是一种编程概念。 (当然,编程中的所有东西都是一个数学概念,但是由于编程,闭包变得很有趣。)当你构造一个闭包时,你绑定一个或多个变量;你正在创建一大堆代码,它们有一些与之相关的变量。

关系是你可以使用闭包来实现currying:你可以通过创建一个第一个参数绑定到1的闭包来构建你的add1函数。