8

我已经阅读了一些关于闭包和柯里化的帖子,但我觉得我没有找到答案。那么闭包和柯里化的区别和相似之处是什么?谢谢您的帮助 :)

4

1 回答 1

6

柯里化首先是一个数学概念。只是观察到,对于任何n元函数f: S 0 ×...S n → R ,您可以使用n-1 个参数定义一个新函数fprime(刚刚发现一个降价错误!),其中第一个参数被替换由一个常数。所以,如果你有一个函数,你可以定义一个新函数为 add(a,b)add1(b)

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

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

闭包更像是一个编程概念。(当然,编程中的一切都是一个数学概念,但是闭包因为编程而变得有趣。)当你构造一个闭包时,你绑定了一个或多个变量;您正在创建一段代码,其中包含一些与之相关的变量。

关系是您可以使用闭包来实现柯里化:您可以add1通过创建一个第一个参数绑定到 1 的闭包来构建上面的函数。

于 2008-12-17T16:05:11.330 回答