15
currying有什么好处?
我刚刚学习了有关curry的知识,尽管我认为我理解了curry的概念,但在使用它方面并没有看到任何大的优势。 作为一个简单的示例,我使用一个将两个值相加的函数(用ML编写)。该版本不使用curry fun add(x, y) = x + y 并称为 add(3, 5) 而咖喱版本是 fun add x y = x + y (* short for val add = fn x => fn y=> x + y *) 并称为 add 3 5 在我看来,这只是语法糖,它从定义和调用函数中除去了一组括号。我已经看到currying被列为功能语言的重要功能之一,但现在我对此有点不知所措。创建只使用每个参数的函数链而不是使用元组的函数的概念对于语法的简单更改而言似乎相当复杂。 稍微简单的语法是否是引起混乱的唯一动机,还是我错过了一些在我非常简单的示例中并不明显的其他优点?只是语法糖吗?