IOモナド

難しいと言われているIOモナドです。確かに説明の「まだ入出力を実行していない現実世界」とか「入出力を実行した後の世界」なんて言われてもよく分かりません。

実行順序を指定したい時と、副作用を扱いたい時に使うものという理解で、それ以上は深追いしないことにします。

サルでもわかるIOモナド?−副作用の除去を読むと、副作用についてはHaskell上ではアクションを返しているだけで副作用は発生せず、Haskellとは別のところにある処理系が副作用をともなう処理を実行していると言っているみたいですね。