- foldl (flip f) b [a] という処理がよくわからなかった
- foldl にはfoldlかfoldl'かというような問題もあるようだが、ここでは、そんな(多分高級な)問題は関係なく、foldlの基本を確認する
- 関数 f として(-) 引き算を使う
foldl (-) 10 [] -- 10:[]内に何もないときは、(-)の最初の引数が返る
foldl (-) 10 [1] -- = foldl (-) ( 10 - 1) [] = 9のこと。リストの先頭から値 v を取り出し、(-) 10 v = 10 -vを計算し、リストの要素を減らしたリストを残している
foldl (-) 10 [1,2] -- = foldl (-) (10 - 1) [2] = foldl (-) 9 [2] = foldl (-) (9-2) [] = 7
- 関数 f として flip (-) を使う
- (flip) (-) 10 3 : これは、3-10のこと
foldl (flip (-)) 10 []
foldl (flip (-)) 10 [1]
foldl (flip (-)) 10 [1,2]
foldl (flip (-)) 10 [1..3]