わかったつもりになっていたけど,実はそんなちゃんとわかってなかったfoldrがこないだの「すごいH本読書会 in 大阪#4」でより理解できたのでメモ. 右たたみ込みは右から動作するわけではない foldrは右たたみ込みというだけあって,末尾の要素から動作するのだとイメージしていた.だから,途中で値決まるのに最後まで走査するとか無駄じゃね?とか思っていた.しかし,それの思い込みはおおきな間違いだった. アキュムレータは初期値ではない foldrでリストのsumを求める式を例に考えてみよう. foldr f 0 [1..5] where f n acc = n + acc 単純な足し算だけど理解しやすいように関数にした.これは以下のように展開される. f(1, <- accが決まらないから次へ f(2, <- accが決まらないから次へ f(3, <- accが決まらないから次へ f(4, <
![foldrやっとわかった - yashiganiの英傑になるまで死ねない日記](https://cdn-ak-scissors.b.st-hatena.com/image/square/8fb7fb2a30f5c541d68cdc3f2934f964db1a2d28/height=288;version=1;width=512/http%3A%2F%2Fecx.images-amazon.com%2Fimages%2FI%2F51P6NdS4IGL.jpg)