5

在 Haskell 中,所有函数最初都是柯里化的,对吗?

所以,让我们看一下这个max函数,我会写下我对它如何工作的理解。

当我写这样的东西时:

max 4 5

会发生什么情况是创建了一个内部值为 4 的新函数,然后它接收一个值,所以这个函数应用于 5 并返回一个正确的值?

我是否以某种方式说错了什么或者这是正确的?

4

1 回答 1

9

这是正确的。您可以通过记住两个最重要的身份来记住柯里化的全部内容:

-- Function type right-associativity:
a -> b -> c = a -> (b -> c)

-- Function application left-associativity:
f x y = (f x) y

这两个身份一起工作并产生了一种咖喱语言。

于 2012-09-27T02:52:37.447 回答