haskell - Rich Hickey 不使用自动柯里化(Currying) Clojure 函数的原因是什么?

标签 haskell clojure currying

Haskell 柯里化(Currying)了它的功能。 Clojure 不允许 partial和函数宏作为执行相同操作的可比方法。

我想我记得听到/阅读了 Hickey 决定背后的原因。有人记得那个原因是什么或我在哪里可以找到它吗?

我希望从基本原理中学到一些东西。

最佳答案

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

因此,专门创建一个柯里化(Currying)函数似乎是合法的。

关于haskell - Rich Hickey 不使用自动柯里化(Currying) Clojure 函数的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31373507/

相关文章:

haskell - 在多行 block 中设置 GHCi 提示

haskell - 使用变形来忘记 Cofree 注释

haskell - Scheme中没有显式突变的向后延续的最简单示例

windows - 如何在 Heroku 中连接到本地 PostgreSQL?

haskell - 组合函数组合 : How does (. ).(.) 有效吗?

scala - (如何)你能 curry 组成一元函数吗?

haskell - 堆栈安装错误: Recommended extra-dep

clojure - 在 Clojure 中嵌套宏

python - 将函数映射到 numpy 数组,改变参数

clojure - 如何在 Clojure 中有条件地展开 Hiccup 数据结构