IT練習ノート

IT関連で調べたこと(実際は嵌ったこと)を書いています。

io-streamでストリームを変更する

Generatorを作る必要があります。

以下のようにしてしまうと、固定値を永遠に流すストリームになってしまいます。

badFunc :: InputStream Int -> IO (InputStream Int)
badFunc s = do
  v <- S.read s
  case v of
    Just x  -> makeInputStream $ return $ Just x
    Nothing -> makeInputStream $ return Nothin

io-stream sample 2