码迷,mamicode.com
首页 > 其他好文 > 详细

Haskell的函数中缀化

时间:2015-04-15 15:09:57      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:

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"]


Haskell的函数中缀化

标签:

原文地址:http://my.oschina.net/u/236698/blog/401806

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!