我已经阅读了一些关于闭合和翘曲的帖子,但我觉得我没有找到答案.那么封闭和蜷缩的差异和可能的相似之处是什么?谢谢您的帮助 :)
Currying首先是一个数学概念.这是正确的观察,对于任何n元函数f:S 0 ×... S n →R,你可以用n-1参数定义一个新函数fprime(刚刚找到一个降价错误!),其中第一个参数被替换一个常数.因此,如果您有一个函数,则可以将新函数定义为 add(a,b)
add1(b)
add1(b) ::= add(1, b)
...将":: ="读作"被定义为".
一个封闭更像是一个编程的概念.(当然,编程中的所有东西都是一个数学概念,但是由于编程,闭包变得很有趣.)当你构造一个闭包时,你绑定一个或多个变量; 你正在创建一个包含一些变量的代码块.
关系是你可以使用闭包来实现currying:你可以add1
通过创建一个闭包来构建你的函数,其中第一个参数绑定到1.