blog.bouzuya.net

2017-02-09 bouzuya/purescript-examples の stdin を直した

今日も早起き。だけど、朝にシャワーを浴びようとしたら水しか出ない。誰かが家の外にあるガスの元栓を閉めたようだ。いたずらだろうか。早く起きた分がすっかりむだになってしまった。許せない。

bouzuya/purescript-examples の stdin を直した。

stdin は purescript-node-streams パッケージの Node.Stream モジュールを使っている。

以前は readString を使っていたのだけど、Readable w ("err" :: EXCEPTION | eff)err を除去するハンドラーが提供されていないので、使うのをやめた。代わりに readEither を使っている。

あと onReadable が何度も発生しているので、 onClose まで待つようにした。 2017-02-04 でも書いた Control.Monad.ST を使って onReadable の結果をつめて onClose でそれらをまとめて返すようにした。良さそう。