{"type":"rich","blog_url":"https://kazu-yamamoto.hatenablog.jp/","provider_url":"https://hatena.blog","categories":["Haskell"],"width":"100%","height":"190","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fkazu-yamamoto.hatenablog.jp%2Fentry%2F2018%2F11%2F29%2F155311\" title=\"Semigroup\u304cMonoid\u306b\u604b\u3059\u308b\u3068\u304d - \u3042\u3069\u3051\u306a\u3044\u8a71\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","title":"Semigroup\u304cMonoid\u306b\u604b\u3059\u308b\u3068\u304d","author_url":"https://blog.hatena.ne.jp/kazu-yamamoto/","provider_name":"Hatena Blog","image_url":null,"version":"1.0","published":"2018-11-29 15:53:11","description":"\u5fa9\u7fd2 Semigroup \u7d50\u5408\u5247 (a\u30fbb)\u30fbc = a\u30fb(b\u30fbc) class Semigroup a where (<>) :: a -> a -> a Monoid \u7d50\u5408\u5247 (a\u30fbb)\u30fbc = a\u30fb(b\u30fbc) \u5358\u4f4d\u5143 e\u30fba = a\u30fbe = a class Semigroup a => Monoid a where mempty :: a mappend :: a -> a -> a mappend = (<>) \u672c\u984c Haskeller\u306e\u4e2d\u306b\u306f\u3001\u300c\u8a2d\u5b9a\u306fMonoid\u3067\u3042\u308b\u3079\u304d\u300d\u5b97\u6d3e\u304c\u5b58\u5728\u3059\u308b\u3002\u305d\u306e\u3088\u3046\u306a\u4fe1\u5ff5\u3092\u6301\u3064Haskeller\u304c\u4f5c\u3063\u305f\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u304a\u3046\u3068\u3059\u308b\u3068\u3001Monoid \u306e\u30a4\u30f3\u2026","author_name":"kazu-yamamoto","url":"https://kazu-yamamoto.hatenablog.jp/entry/2018/11/29/155311","blog_title":"\u3042\u3069\u3051\u306a\u3044\u8a71"}