{"author_name":"sirocco","version":"1.0","published":"2010-11-08 10:38:29","categories":["Haskell"],"width":"100%","image_url":null,"url":"https://sirocco.hatenadiary.org/entry/20101108/1289180309","blog_title":"sirocco \u306e\u66f8\u3044\u3066\u3082\u3059\u3050\u306b\u5fd8\u308c\u308b\u30e1\u30e2","description":"Parsec, \u9ad8\u901f\u306a\u30b3\u30f3\u30d3\u30cd\u30fc\u30bf\u30d1\u30fc\u30b5 \u306e\u5199\u7d4c\u306e\u7d9a\u304d\u3067\u3059\u3002 import Text.ParserCombinators.Parsec hiding (spaces) import Text.ParserCombinators.Parsec.Expr run :: Show a => Parser a -> String -> IO () run p input = case (parse p \"\" input) of Left err -> putStr \"parse error at \" >> print err Right x -> print x expr :: Parser Inte\u2026","type":"rich","provider_name":"Hatena Blog","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fsirocco.hatenadiary.org%2Fentry%2F20101108%2F1289180309\" title=\"Parsec\u306b\u3061\u3087\u3063\u3068\u89e6\u3063\u3066\u307f\u308b(4):\u5f0f - 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>","author_url":"https://blog.hatena.ne.jp/sirocco/","title":"Parsec\u306b\u3061\u3087\u3063\u3068\u89e6\u3063\u3066\u307f\u308b(4):\u5f0f","blog_url":"https://sirocco.hatenadiary.org/","height":"190","provider_url":"https://hatena.blog"}