非正格
非正確(ひせいかく)とは、プログラミングにおいて関数の引数が関数本体の評価で実際に使われるまで評価されないことをいう。最近では「遅延評価」や「短絡評価」と呼ばれることが多い。
- 正格評価(Strict Evaluation / Eager Evaluation): 関数を呼び出す直前に引数をすべて計算する。
- 遅延評価(Lazy Evaluation): 必要になるまで計算を遅らせる。
「遅延評価」と「短絡評価」の違い
「遅延評価」と「短絡評価」は厳密にはこれらは異なる概念です。なお、こんな細かいこと気にしていたら確実にハゲます。
遅延評価(Lazy Evaluation)
必要な時まで計算しない技術全般。パフォーマンス向上や、無限リストを扱う場合などに有効。
短絡評価(Short-circuit Evaluation)
「&&」や「||」などの論理演算子において、左辺の値だけで結果が決まる場合、右辺を評価しない挙動。これも評価を遅らせる(またはスキップする)点では「遅延」の一種ですが、主に論理演算の最適化を指します。