「遅延評価」の版間の差分
ナビゲーションに移動
検索に移動
Administrator (トーク | 投稿記録) (ページの作成:「遅延評価とは、プログラミング言語において、式の評価を必要とする時点まで評価を遅延させる手法です。<syntaxhighlight lang=…」) |
Administrator (トーク | 投稿記録) |
||
1行目: | 1行目: | ||
− | + | '''遅延評価'''(ちえんひょうか、lazy)とは、[[プログラミング言語]]において、式の評価を必要とする時点まで評価を遅延させる手法です。対義語は「[[正確評価]]」です。 | |
− | |||
− | |||
− | |||
− | + | 一般的に遅延評価は[[関数型プログラミング言語]]で使用されます。例えば[[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」の計算が何度も発生して[[プログラム]]の実行効率は悪そうに見えますが、遅延評価を使用することで無限のリストなどの無限のデータ構造を表現することも可能になります。 | |
− | |||
− |
2023年3月15日 (水) 05:48時点における版
遅延評価(ちえんひょうか、lazy)とは、プログラミング言語において、式の評価を必要とする時点まで評価を遅延させる手法です。対義語は「正確評価」です。
一般的に遅延評価は関数型プログラミング言語で使用されます。例えばHaskellでは遅延評価が基本的な評価戦略として使用されます。また、JavaScriptでも遅延評価を使用することができます。
概要
通常、プログラミング言語では、変数に値を代入するとすぐにその式が評価されます。
x = 5 + 3 ; 正確評価では5 + 3が実行されxに8が代入されます。
PRINT x ; 正確評価ではxの内容を表示するだけです。
PRINT x + 1 ; 正確評価ではx + 1が実行され結果が表示されます。
しかし、遅延評価では式の評価を必要とするまで遅らせます。
x = 5 + 3 ; 遅延評価ではまだ実行されません。
PRINT x ; 遅延評価ではx = 5 + 3が実行され結果が表示されます。
PRINT x + 1 ; 遅延評価では再びx = 5 + 3が実行され、その結果に+1した結果が表示されます。
遅延評価は上記を見ての通り「x = 5 + 3」の計算が何度も発生してプログラムの実行効率は悪そうに見えますが、遅延評価を使用することで無限のリストなどの無限のデータ構造を表現することも可能になります。