哈斯克尔 - 关于咖喱

时间:2012-09-27 02:22:51

标签: haskell

在Haskell中,所有函数最初都是curry,对吧?

那么,让我们看一下max函数,然后我将写下我对其工作原理的理解。

当我写这样的东西时:

max 4 5

会发生一个新的函数,它内部的值为4,然后收到一个值,所以这个函数应用于5并返回一个正确的值?

我是以某种方式说错了还是这是正确的?

1 个答案:

答案 0 :(得分:9)

这是对的。通过记住两个最重要的身份,你可以记住currying的全部内容:

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

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

这两个身份共同发挥作用,产生一种讨厌的语言。