メインメニューを開く

差分

遅延評価

366 バイト追加, 2023年3月15日 (水) 05:48
編集の要約なし
遅延評価とは、'''遅延評価'''(ちえんひょうか、lazy)とは、[[プログラミング言語]]において、式の評価を必要とする時点まで評価を遅延させる手法です。<syntaxhighlight lang="basic">x = 5 + 3 ; 遅延評価ではまだ実行されません。PRINT x ; このでx = 5 + 3が実行されます。PRINT x + 1 ; ここでもx = 5 + 3が実行されます。において、式の評価を必要とする時点まで評価を遅延させる手法です。対義語は「[[正確評価]]」です。
</syntaxhighlight>通常、プログラミング言語では、変数に値を代入するとすぐにその式が評価されます。一般的に遅延評価は[[関数型プログラミング言語]]で使用されます。例えば[[Haskell]]では遅延評価が基本的な評価戦略として使用されます。また、[[JavaScript]]でも遅延評価を使用することができます。
しかし、遅延評価を使用すると、式の評価を必要とするまで遅らせることができます。これにより、プログラムの実行効率を向上させることができます。== 概要 ==通常、[[プログラミング言語]]では、[[変数]]に値を代入するとすぐにその式が評価されます。<syntaxhighlight lang="basic">x = 5 + 3 ; 正確評価では5 + 3が実行されxに8が代入されます。PRINT x ; 正確評価ではxの内容を表示するだけです。PRINT x + 1 ; 正確評価ではx + 1が実行され結果が表示されます。</syntaxhighlight>
しかし、遅延評価では式の評価を必要とするまで遅らせます。
<syntaxhighlight lang="basic">
x = 5 + 3 ; 遅延評価ではまだ実行されません。
PRINT x ; 遅延評価ではx = 5 + 3が実行され結果が表示されます。
PRINT x + 1 ; 遅延評価では再びx = 5 + 3が実行され、その結果に+1した結果が表示されます。
</syntaxhighlight>
遅延評価は、一般的に遅延評価は上記を見ての通り「x = 5 + 3」の計算が何度も発生して[[関数型プログラミング言語プログラム]]で使用されます。例えば、[[Haskell]]では遅延評価が基本的な評価戦略として使用されます。また、[[JavaScript]]でも遅延評価を使用することができます。 遅延評価を使用することで、無限のリストなどの無限のデータ構造を表現することも可能になります。ただし、遅延評価は、メモリ使用量が大きくなる可能性があるため、適切に使用する必要があります。の実行効率は悪そうに見えますが、遅延評価を使用することで無限のリストなどの無限のデータ構造を表現することも可能になります。