「Haskellで副作用のあるプログラムを作れることをどうやって説明したらいいの?」まとめ

発端

mzpHaskellって副作用ないのにどうやってゲームとか作るの?」って質問にうまく答えれない。IOモナドのおかげで、副作用がなくても副作用があるプログラムが作れるんです、って言っても意味が分かんないよねlink

Twitterでつぶやいたら、いろんな人からリプライをもらいました。

まとめ

みなさん、実にうまく説明していておもしろかったので、トゥギャッターでまとめてみました。「モナドが、副作用をうまく隠蔽してくれる。」という説明が直感的で分かりやすいと思いました。
Haskellで副作用が使えることをなんて説明すればいいの? - Togetter

結論

tanakhHaskellには副作用がないんじゃない。参照透明なだけだ。link

これが一番しっくりすると思います。