{"image_url":null,"width":"100%","description":"Real World Haskell 4.\u95a2\u6570\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0 4.6 \u30eb\u30fc\u30d7\u3092\u3069\u306e\u3088\u3046\u306b\u8003\u3048\u308b\u304b -- file: ch04/Fold.hs myFoldl :: (a -> b -> a) -> a -> [b] -> a myFoldl f z xs = foldr step id xs z where step x g a = g (f a x) import Debug.Trace myFoldl f z xs = trace(\"foldr step id \"++show xs++\" \"++show z) (foldr step id xs z) where step x g a = \u2026","blog_title":"sirocco \u306e\u66f8\u3044\u3066\u3082\u3059\u3050\u306b\u5fd8\u308c\u308b\u30e1\u30e2","provider_url":"https://hatena.blog","blog_url":"https://sirocco.hatenadiary.org/","height":"190","author_name":"sirocco","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fsirocco.hatenadiary.org%2Fentry%2F20100512%2F1273667649\" title=\"\u300cReal World Haskell\u300d\u8aad\u66f8\u30e1\u30e2\u30004.\u95a2\u6570\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0 foldl \u3092 foldr \u3067\u7406\u89e3\u3059\u308b - sirocco \u306e\u66f8\u3044\u3066\u3082\u3059\u3050\u306b\u5fd8\u308c\u308b\u30e1\u30e2\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","type":"rich","url":"https://sirocco.hatenadiary.org/entry/20100512/1273667649","provider_name":"Hatena Blog","published":"2010-05-12 21:34:09","title":"\u300cReal World Haskell\u300d\u8aad\u66f8\u30e1\u30e2\u30004.\u95a2\u6570\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0 foldl \u3092 foldr \u3067\u7406\u89e3\u3059\u308b","categories":[],"author_url":"https://blog.hatena.ne.jp/sirocco/","version":"1.0"}