どうでも良いけど、やっとHaskellのIOアクションそのものは参照等価であることが納得できた気がする。
IOアクションの評価を一番最後まで遅延させ、外部要因や時間的要因を一切排除することによって、IOアクションの値は不変となり、最後に一度だけ評価をするIOアクションの値は一意性を満たすために、参照等価であると言うことができるのだな。
で、一度のIOアクションの評価で複数の副作用を扱うためにモナドや遅延評価を用いているわけだ

フォロー

これを考えると、改めてHaskellはすげえなと思うよ

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。