{"image_url":null,"author_name":"inamori","blog_url":"https://inamori.hateblo.jp/","type":"rich","version":"1.0","blog_title":"inamori\u2019s diary","width":"100%","provider_name":"Hatena Blog","height":"190","published":"2010-09-01 00:00:00","description":"Haskell\u306a\u3069\u306b\u3042\u308bunfold\u306f\u3001reduce\u306e\u9006\u3067\u521d\u671f\u5024\u304b\u3089\u30ea\u30b9\u30c8\u3092\u4f5c\u3063\u3066\u3044\u304d\u307e\u3059\u3002 f(\u72b6\u614b0) \u2192 (\u50241, \u72b6\u614b1) \u2192 \u50241 f(\u72b6\u614b1) \u2192 (\u50242, \u72b6\u614b2) \u2192 \u50242 \u3068\u3044\u3046\u5177\u5408\u306b\u5024\u3092\u51fa\u3057\u3066\u3044\u304d\u307e\u3059\u3002 reduce\u306e\u9006\u306a\u306e\u306bunfold\u306a\u306e\u306f\u3042\u307e\u308a\u6c17\u306b\u3057\u306a\u3044\u65b9\u5411\u3067\u3002 template<typename T, typename U, typename V> class cUnfold : public cIterable<T> { T val; U stat; V func; public: cUnfold(V f, U s) : stat(s), func(f) { } \u2026","provider_url":"https://hatena.blog","categories":["C++"],"title":"unfold","author_url":"https://blog.hatena.ne.jp/inamori/","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Finamori.hateblo.jp%2Fentry%2F20100901%2Fp1\" title=\"unfold - inamori\u2019s diary\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","url":"https://inamori.hateblo.jp/entry/20100901/p1"}