FP学习之二

2015-12-01  本文已影响24人  80s老人

上次匿名函数的用法没理解透,弄2个例子复习下
元组传参会这样

map (\(a,b) -> a * b) [(1,2),(3,5),(6,3),(2,6),(2,5)]

和下面这种是等价的,区别是传参的方式不同

zipWith (\a,b -> a * b) [1,3,6,2,2] [2,5,3,6,5]

还有一个左折叠foldl 和 右折叠foldr,其实可以把map理解对列表的循环,而把fold理解成对列表的递归,结果是15

foldl (\acc x -> acc + x) 0 [1,2,3,4,5]
foldl (+) 0 [1,2,3,4,5]

$ 这个符号是什么? 由于这个符号在Haskell里面是运算最低优先级别,所以用来做函数调用符,其实就是可以省括号

f $ x = f x

** .是什么,Haskell里面这么多新运算符!! 其实是函数组合符号**

f . g = \x -> f (g x)

今天理解到这里吧,有时间再继续~~

上一篇 下一篇

猜你喜欢

热点阅读