柯里化对函数式编程有何意义?

我看过 Haskell 的 Curry 函数, 原以为是函数是编程普通的功能 但回头看 Scheme 却发现圆括号对柯里化支持并不是很好 具体说不上, 找到有个看不太懂的链接 stackoverflow.com/quest engr.uconn.edu/%7Ejeffm 柯里化对函数式编程来说必要么? 我的本意是, 自动给 lisp 加括号, 发现柯里化有问题 gist.github.com/1615885
关注者
306
被浏览
29,342

15 个回答

并非“科里化”对函数式编程有意义。而是,函数式编程在把函数当作一等公民的同时,就不可避免的会产生“科里化”这种用法。所以它并不是因为“有什么意义”才出现的。当然既然存在了,我们自然可以探讨一下怎么利用这种现象。

详见如何理解functional programming里的currying与partial application? - 罗宸的回答
Currying 的重要意义在于可以把函数完全变成「接受一个参数;返回一个值」的固定形式,这样对于讨论和优化会更加方便。