标签:
Haskell中函数一般情况下是使用前缀的方式进行操作。但是有一个方法可以将前缀方式变成中缀的方式。
我们只需要用``将函数包裹起来,就可以将一个具有2个参数的函数变成中缀形式。
Prelude> "a" `notElem` ["b"] True Prelude> notElem "a" ["b"] True
函数中缀化,不但能将有2个参数的函数变成中缀形式,也可以将有2个以上的函数变成中缀形式。
但是看起来比较丑
Prelude> foldl (+) 0 [1..5] 15 Prelude> ((+) `foldl` 0) [1..5] 15
函数中缀化个人感觉最有用的地方是对数据进行流式处理,数据从一个函数进入,然后顺序的进入下一个函数。并且这些函数只需要按照正常的顺序往下写就可以了,而不需要逆序书写
使用中缀的方式 fst col `notElem` ["order"] 只用函数组合方式 (notElem.fst) col ["order"]
标签:
原文地址:http://my.oschina.net/u/236698/blog/401806