Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? TL;DR 関数は呼び出されるまで評価されない、というのは当然の性質だ。 正格評価を行う言語でも、クロージャーがあれば遅延評価の挙動を模倣できる。 遅延評価という言葉の意味を拡大して使うのは危険なのではないか。 様々な計算効果を持つプログラムは、クライスリ圏の射と見なせる。 クライスリ圏を作るためのものがモナドだ。 計算効果を自由に組み合わせられるHaskellは「究極の手続き型言語」だ。 モナドは(普通の意味では)遅延評価ではない。 事の発端 「純粋関数型」 &「副作用」というトリッキーワードについて想うこと『裸の王様』を読みました。