「遅延評価」を編集中

ナビゲーションに移動 検索に移動

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

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

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)