「遅延評価」の版間の差分

編集の要約なし
編集の要約なし
 
(同じ利用者による、間の1版が非表示)
14行目: 14行目:
<syntaxhighlight lang="basic">
<syntaxhighlight lang="basic">
x = 5 + 3  ; 遅延評価ではまだ実行されません。
x = 5 + 3  ; 遅延評価ではまだ実行されません。
PRINT x    ; 遅延評価ではx = 5 + 3が実行され結果が表示されます。
PRINT x    ; 遅延評価では5 + 3が実行され結果が表示されます。
PRINT x    ; 遅延評価ではx = 5 + 3が再び実行され結果が表示されます。
PRINT x    ; 遅延評価では5 + 3が再び実行され結果が表示されます。
</syntaxhighlight>
</syntaxhighlight>


遅延評価は上記を見ての通り「x = 5 + 3」の計算が何度も発生して[[プログラム]]の実行効率は悪そうに見えますが、遅延評価を使用することで無限のリストなどの無限のデータ構造を表現することも可能になります。
遅延評価は上記を見ての通り「x = 5 + 3」の計算が何度も発生して[[プログラム]]の実行効率は悪そうに見えますが、遅延評価を使用することで[[スタックオーバーフロー]]せずに「無限のリスト」などの無限のデータ構造を表現することも可能になります。なお[[メモリ]]は勢いよく消費します。