{"categories":["Haskell"],"author_url":"https://blog.hatena.ne.jp/sirocco/","author_name":"sirocco","blog_title":"sirocco \u306e\u66f8\u3044\u3066\u3082\u3059\u3050\u306b\u5fd8\u308c\u308b\u30e1\u30e2","provider_url":"https://hatena.blog","type":"rich","published":"2010-11-06 23:57:57","provider_name":"Hatena Blog","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fsirocco.hatenadiary.org%2Fentry%2F20101106%2F1289055477\" title=\"Parsec\u306b\u3061\u3087\u3063\u3068\u89e6\u3063\u3066\u307f\u308b(3):\u30a8\u30e9\u30fc\u30b3\u30f3\u30d3\u30cd\u30fc\u30bf () - 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>","image_url":null,"version":"1.0","width":"100%","height":"190","description":"Parsec, \u9ad8\u901f\u306a\u30b3\u30f3\u30d3\u30cd\u30fc\u30bf\u30d1\u30fc\u30b5 \u306e\u5199\u7d4c\u306e\u7d9a\u304d\u3067\u3059\u3002 \u30a8\u30e9\u30fc\u30b3\u30f3\u30d3\u30cd\u30fc\u30bf (<?>) \u306f\u30a8\u30e9\u30fc\u306e\u8a18\u8ff0\u3092\u30d1\u30fc\u30b5\u306b\u8ffd\u52a0\u3057\u307e\u3059\u3002 \u30d1\u30fc\u30b5\u304c\u5931\u6557\u3057\u305f\u3068\u304d\u3001\u5165\u529b\u3092\u6d88\u8cbb\u3059\u308b\u3053\u3068\u306a\u304f\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8fd4\u3057\u307e\u3059\u3002 import Text.ParserCombinators.Parsec 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 -- \u533a\u5207\u2026","blog_url":"https://sirocco.hatenadiary.org/","title":"Parsec\u306b\u3061\u3087\u3063\u3068\u89e6\u3063\u3066\u307f\u308b(3):\u30a8\u30e9\u30fc\u30b3\u30f3\u30d3\u30cd\u30fc\u30bf ()","url":"https://sirocco.hatenadiary.org/entry/20101106/1289055477"}