我知道像\x->x+1
这样的东西是一个匿名函数定义,它获取一个x并为其添加一个。但是当我阅读一篇文章here时,我看到了return x = (\ r -> x)
这个词。
(\ r -> x)
是什么意思?为什么反斜杠是空的?
答案 0 :(得分:6)
没有区别:\ r -> x
或\r -> x
具有相同的含义,与1+1
和1 + 1
具有相同的含义。 \
之后的空格无关紧要。
因此,return x
只是\r -> x
,这是一个接受参数r
,忽略它并产生x
的函数。
此外,由于r
被忽略,我们倾向于写\ _ -> x
(或const x
- 其定义为const x _ = x
)。