差分
ナビゲーションに移動
検索に移動
真正末尾再帰
,'''真正末尾再帰'''とは、[[末尾再帰]]を利用することで確実に[[末尾再帰最適化]]が行われることが保証される[[プログラミング言語]]のことである。
== 概要 ==
[[末尾再帰]]を利用することで確実に[[末尾再帰最適化]]が行われるため、末尾再帰をいくら使用しても[[コールスタック]]などの[[リソース]]を食いつぶすなどの挙動がなく、結果として[[再帰]]の呼び出し回数に制限がない状態をいう。
また、このような[[末尾再帰最適化]]が必ず行われることが保証されている[[処理系]]([[プログラミング言語]])を指す。
[[正格評価]]の[[関数型プログラミング言語]]を名乗る[[言語]]であれば、ほぼ真正末尾再帰であると思ってよい。ただし[[正格評価]]の代表格である[[LISP]]だけは何故か真正末尾再帰ではない。その派生品である[[Scheme]]などでは真正になっている。
== 関連項目 ==
* [[再帰]]
* [[末尾再帰]]
* [[末尾再帰最適化]]
== 参考文献 ==
{{reflist}}
{{stub}}
== 概要 ==
[[末尾再帰]]を利用することで確実に[[末尾再帰最適化]]が行われるため、末尾再帰をいくら使用しても[[コールスタック]]などの[[リソース]]を食いつぶすなどの挙動がなく、結果として[[再帰]]の呼び出し回数に制限がない状態をいう。
また、このような[[末尾再帰最適化]]が必ず行われることが保証されている[[処理系]]([[プログラミング言語]])を指す。
[[正格評価]]の[[関数型プログラミング言語]]を名乗る[[言語]]であれば、ほぼ真正末尾再帰であると思ってよい。ただし[[正格評価]]の代表格である[[LISP]]だけは何故か真正末尾再帰ではない。その派生品である[[Scheme]]などでは真正になっている。
== 関連項目 ==
* [[再帰]]
* [[末尾再帰]]
* [[末尾再帰最適化]]
== 参考文献 ==
{{reflist}}
{{stub}}