反斜杠空间在Haskell中意味着什么

时间:2015-11-20 17:32:21

标签: haskell lambda

我知道像\x->x+1这样的东西是一个匿名函数定义,它获取一个x并为其添加一个。但是当我阅读一篇文章here时,我看到了return x = (\ r -> x)这个词。

(\ r -> x)是什么意思?为什么反斜杠是空的?

1 个答案:

答案 0 :(得分:6)

没有区别:\ r -> x\r -> x具有相同的含义,与1+11 + 1具有相同的含义。 \之后的空格无关紧要。

因此,return x只是\r -> x,这是一个接受参数r,忽略它并产生x的函数。

此外,由于r被忽略,我们倾向于写\ _ -> x(或const x - 其定义为const x _ = x)。