{"version":"1.0","categories":["Haskell"],"type":"rich","blog_url":"https://a-kawashiro.hatenablog.com/","provider_name":"Hatena Blog","url":"https://a-kawashiro.hatenablog.com/entry/2017/10/20/000123","author_url":"https://blog.hatena.ne.jp/a_kawashiro/","author_name":"a_kawashiro","width":"100%","blog_title":"a_kawashiro\u306e\u30d6\u30ed\u30b0","image_url":null,"title":"Free\u30e2\u30ca\u30c9\u306b\u3064\u3044\u3066\u4eca\u66f4\u52c9\u5f37\u3057\u3066\u307f\u305f","description":"5\u5e74\u307b\u3069\u524d\u3001Free\u30e2\u30ca\u30c9\u3068\u3044\u3046\u8a00\u8449\u304cHaskell\u754c\u9688\u3067\u3088\u304f\u898b\u3089\u308c\u307e\u3057\u305f\u3002 \u50d5\u306e\u30d5\u30a9\u30ed\u30fc\u3057\u3066\u3044\u308b\u4eba\u305f\u3061\u304c\u6b21\u3005\u306b\u89e3\u8aac\u8a18\u4e8b\u3092\u30a2\u30c3\u30d7\u3057\u3066\u3044\u305f\u3088\u3046\u306b\u601d\u3044\u307e\u3059\u3002 5\u5e74\u305f\u3063\u305f\u4eca\u306b\u306a\u3063\u3066\u3001Free\u30e2\u30ca\u30c9\u306b\u3064\u3044\u3066\u8208\u5473\u304c\u6e67\u3044\u3066\u304d\u305f\u306e\u3067\u8a18\u4e8b\u3092\u66f8\u3044\u3066\u307f\u308b\u3053\u3068\u306b\u3057\u307e\u3057\u305f\u3002 Free\u30e2\u30ca\u30c9\u306e\u5b9a\u7fa9\u306b\u884c\u304f\u524d\u306bFree\u578b\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002 -- The kind of f is * -> * like Maybe, []. -- The kind of a is * like Int, Char, [Char]. data Free f a = Pure a | Free (f (Free f a)) \u3053\u3053\u3067f\u306f\u30ab\u30a4\u30f3\u30c9\u2026","provider_url":"https://hatena.blog","height":"190","published":"2017-10-20 00:01:23","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fa-kawashiro.hatenablog.com%2Fentry%2F2017%2F10%2F20%2F000123\" title=\"Free\u30e2\u30ca\u30c9\u306b\u3064\u3044\u3066\u4eca\u66f4\u52c9\u5f37\u3057\u3066\u307f\u305f - a_kawashiro\u306e\u30d6\u30ed\u30b0\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>"}