「真正末尾再帰」の版間の差分
ナビゲーションに移動
検索に移動
imported>Administrator |
Administrator (トーク | 投稿記録) |
||
(他の1人の利用者による、間の1版が非表示) | |||
1行目: | 1行目: | ||
− | '''真正末尾再帰'''とは、[[末尾再帰]]を利用することで確実に[[末尾再帰最適化]]が行われることが保証される[[プログラミング言語]] | + | '''真正末尾再帰'''とは、[[末尾再帰]]を利用することで確実に[[末尾再帰最適化]]が行われることが保証される[[プログラミング言語]]のことである。単に「真正」「真正的」などと呼ばれることもある。 |
== 概要 == | == 概要 == | ||
12行目: | 12行目: | ||
* [[末尾再帰]] | * [[末尾再帰]] | ||
* [[末尾再帰最適化]] | * [[末尾再帰最適化]] | ||
− | |||
− | |||
− | |||
− | |||
− |
2021年2月9日 (火) 07:41時点における最新版
真正末尾再帰とは、末尾再帰を利用することで確実に末尾再帰最適化が行われることが保証されるプログラミング言語のことである。単に「真正」「真正的」などと呼ばれることもある。
概要[編集 | ソースを編集]
末尾再帰を利用することで確実に末尾再帰最適化が行われるため、末尾再帰をいくら使用してもコールスタックなどのリソースを食いつぶすなどの挙動がなく、結果として再帰の呼び出し回数に制限がない状態をいう。
また、このような末尾再帰最適化が必ず行われることが保証されている処理系(プログラミング言語)を指す。
正格評価の関数型プログラミング言語を名乗る言語であれば、ほぼ真正末尾再帰であると思ってよい。ただし正格評価の代表格であるLISPだけは何故か真正末尾再帰ではない。その派生品であるSchemeなどでは真正になっている。