上次匿名函數(shù)的用法沒理解透,弄2個例子復習下
元組傳參會這樣
map (\(a,b) -> a * b) [(1,2),(3,5),(6,3),(2,6),(2,5)]
和下面這種是等價的,區(qū)別是傳參的方式不同
zipWith (\a,b -> a * b) [1,3,6,2,2] [2,5,3,6,5]
還有一個左折疊foldl 和 右折疊foldr,其實可以把map理解對列表的循環(huán),而把fold理解成對列表的遞歸,結果是15
foldl (\acc x -> acc + x) 0 [1,2,3,4,5]
foldl (+) 0 [1,2,3,4,5]
$ 這個符號是什么? 由于這個符號在Haskell里面是運算最低優(yōu)先級別,所以用來做函數(shù)調用符,其實就是可以省括號
f $ x = f x
** .是什么,Haskell里面這么多新運算符!! 其實是函數(shù)組合符號**
f . g = \x -> f (g x)
今天理解到這里吧,有時間再繼續(xù)~~