エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
色々入門書を読んでみたのだが、IOモナドというものがどういうものなのか分からない。 使い方は分かるん... 色々入門書を読んでみたのだが、IOモナドというものがどういうものなのか分からない。 使い方は分かるんだが、なんでこうなってるのとか、どういう風に実装されてるのかとかさっぱり理解の外である。 ということで、まず、NiseIOモナドを自分で作って見てある程度自分で考えてから実装を見ないと損した気分になるので、考えてみた。 よくある入門書いわくIOモナドは副作用実行前の世界と副作用実行後の世界+副作用の結果を考えることで純粋になってるらしい。 だが、まあ普通に考えてそういうインターフェースは data Env = Env {input::String, output::String } data NiseIOResult a = NiseIOResult a Env getChar_1 :: Env -> NiseIOResult Char getChar_1 (Env (x:xs) y) =