第
分割是將引數部分應用於中綴運算子的簡明方法。
例如,如果我們想要編寫一個在單詞的末尾新增 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]