lazy evaluationとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > lazy evaluationの意味・解説 

遅延評価

(lazy evaluation から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/07/28 02:42 UTC 版)

遅延評価(ちえんひょうか、: lazy evaluation)や必要呼び(ひつようよび、: call-by-need)は評価戦略の一種類であり、非正格な関数型言語で使用もされる。対義語は先行評価: eager evaluation)。

概要

評価しなければならない値が存在するとき、実際の計算を値が必要になるまで行わないことをいう。評価法が指示されているが実際の計算が行われていない中間状態の時それをプロミス(: promise)や、計算の実体をさしてサンク(: thunk)といい、プロミスを強制(: force)することで値が計算される。一旦計算された値はキャッシュをすることが可能であり、遅延プロミスは最大で一度しか計算されないようにすることができる。ただし、Haskell の実装によっては、何度でも同じ計算を行う。

遅延評価を行う利点は計算量最適化である。

ある関数を呼び出すとき、その関数が引数の全てを利用するとは限らない。条件次第で捨ててしまうような値を事前に準備することは非効率的である。このような場合遅延評価を行うと必要なときだけ値が計算されるので計算量を低減できる。

また同じ評価を複数回利用する可能性があるとき、先行評価では値を保持しない限りそれぞれのケースで再計算を行うが、遅延評価では実評価は最初の一度だけで二回目以降はキャッシュを参照するだけであることが保証されている[要検証]為、自然な形で値の再利用を実現できる。

一方で遅延評価は実装の難しさ、計算が起こるタイミングを予想できないという弱点を持つ。現行計算機のアーキテクチャでは先行評価が機械的に自然なこともあり、普及するには時間が必要である。

遅延評価を持つ言語

遅延評価を原則とする言語の例

遅延評価を仕様に定義している言語の例

関連項目




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「lazy evaluation」の関連用語

lazy evaluationのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



lazy evaluationのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの遅延評価 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS