{"description":"id:sshi\u3055\u3093\u306e\u6307\u6458\u304c\u6c17\u306b\u306a\u3063\u3066\u3001\u3042\u308c\u3053\u308c\u8a66\u3057\u3066\u307f\u305f\u3089\u3001\u5168\u7136\u5171\u6709\u3067\u304d\u308b\u3093\u3067\u3059\u3051\u3069\u3002 \u305f\u3068\u3048\u3070\u3001\u3053\u3093\u306a\u611f\u3058\u3002 Start w = w --> stdio --> \\(f,w) = f --> fwrites \"input >\" --> freadline --> \\(line, f) = f --> fwrites $ reverseStr line --> if (line == \"123\") id (trace \"ng\") --> flip fclose w --> \\(ok,w) = if ok w (trace \"error on close\" w) reverseStr :: {#\u2026","image_url":null,"height":"190","provider_name":"Hatena Blog","type":"rich","title":"Concurrent Clean : \u6587\u5b57\u5217\u306e\u4e00\u610f\u6027\u578b\u5c5e\u6027","author_url":"https://blog.hatena.ne.jp/lethevert/","blog_url":"https://lethevert.hatenadiary.org/","version":"1.0","provider_url":"https://hatena.blog","published":"2006-04-11 00:00:05","width":"100%","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Flethevert.hatenadiary.org%2Fentry%2F20060411%2Fp3\" title=\"Concurrent Clean : \u6587\u5b57\u5217\u306e\u4e00\u610f\u6027\u578b\u5c5e\u6027 - lethevert is a programmer\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","categories":["\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0"],"author_name":"lethevert","url":"https://lethevert.hatenadiary.org/entry/20060411/p3","blog_title":"lethevert is a programmer"}