第
分割是将参数部分应用于中缀运算符的简明方法。
例如,如果我们想要编写一个在单词的末尾添加 ing
的函数,我们可以使用一个部分来简洁地定义一个函数。
> (++ "ing") "laugh"
"laughing"
请注意我们如何部分应用第二个参数。通常,我们只能按指定的顺序部分应用参数。
我们也可以使用左切片来部分应用第一个参数。
> ("re" ++) "do"
"redo"
我们可以使用普通前缀部分应用程序等效地写这个:
> ((++) "re") "do"
"redo"
关于减法的注记
初学者经常错误地划分否定。
> map (-1) [1,2,3]
***error: Could not deduce...
这不起作用,因为 -1
被解析为文字 -1
而不是应用于 1
的分段运算符 -
。subtract
函数的存在是为了避免这个问题。
> map (subtract 1) [1,2,3]
[0,1,2]