Rich Hickey不能自动解决Clojure功能的原因?

时间:2015-07-12 23:16:40

标签: haskell clojure currying

Haskell讨论它的功能。虽然Clojure允许partial和函数宏作为执行相同操作的可比方法,但它不会。

我以为我记得听过/读过希基的决定背后的原因。有人回忆起那个原因是什么,或者我在哪里可以找到它?

我希望从理由中学到一些东西。

1 个答案:

答案 0 :(得分:26)

由于函数可以有多个arities,因此可以直接调用函数而不是currying函数。接下来,如果你只有一个arity,并且你错过了一个参数,则不会检测到arity错误,而是生成currying函数。一个非常糟糕和难以调试的情况,特别是如果函数返回一个具有相同问题arity的函数,或者函数作为参数传递给另一个函数。

因此,专门创建一个currying函数似乎是合法的。