【ちえんひょうか】
遅延評価 とは?
💡 「必要になるまで働かない」賢い計算の先送り術
📌 このページのポイント
- 値を使う瞬間まで計算を遅らせ、無駄な処理を省ける
- 無限のリストや数列を表現できる
- Haskellは言語全体が遅延評価ベースで設計されている
- JavaScriptのPromise・Pythonのジェネレーターも近い概念
遅延評価って、計算をサボるってこと?
うまい表現だね!値を使うその瞬間まで計算を後回しにする戦略だよ。使われなければ計算自体が発生しないんだ。
普通はどうやって計算してるの?
通常の「先行評価(Eager Evaluation)」では、式が現れた瞬間にすぐ計算するよ。でも遅延評価は「誰かが値を要求したとき」だけ計算するんだ。
無限リストが扱えるって本当なの?
本当だよ!例えば「自然数の無限リスト」を定義しても、実際に取り出す分だけ計算するから無限でも問題ないんだ。Haskellでは `[1..]` みたいに書けるよ。
JavaScriptでも使えるの?
注意点はあるの?
まとめ:ざっくりこれだけ覚えればOK!
「遅延評価」って出てきたら「必要になったときだけ計算するしくみ」と思えればだいたいOK!
📖 おまけ:英語の意味
「Lazy Evaluation」 = 怠惰な評価
💬 「Lazy(怠惰な)」という名前は、必要になるまで計算しない「怠け者」な振る舞いから来ているんだよ。対義語は即座に計算する「Eager Evaluation(先行評価)」だよ