評価戦略
値呼び call-by-value
関数を適用するときにはまず引数を値に評価する
式の内側から計算していく
多くのプログラミング言語はこれ
デメリット
余計な計算を多くする
スタックオーバーフローを起こす
名前呼び call-by-name
外側の関数適用から順に,引数を式のままパラメータに置換する
部分式の計算が複数回発生する
必要呼び call-by-need
外側の関数適用から,引数を式のままパラメータに置換するが,一度評価した式は,結果を覚えておいて二度評価しない
無限の大きさを持つデータ構造を表現できる
Haskellなど