「末尾再帰」の版間の差分

imported>GamerBook
編集の要約なし
imported>GamerBook
編集の要約なし
1行目: 1行目:
末尾再帰(まつびさいき、tail recursive)とは、[[再帰]]のうち、[[関数]]の末尾にのみ[[再帰]]を記述する[[プログラミング]]のテクニックである。
末尾再帰(まつびさいき、tail recursive)とは、[[再帰]]のうち、[[関数]]の末尾にのみ[[再帰]]を記述する[[プログラミング]]のテクニックである。


そんな小難しくて面倒なことをして何が嬉しいかというと、賢い[[コンパイラ]]だと[[最適化]]時に末尾再帰を検出すると自動的に[[再帰]]ではなくしてくれる。これを[[末尾再帰最適化]]という。
そんな小難しくて面倒なことをして何が嬉しいかというと、賢い[[コンパイラ]]だと[[最適化]]時に末尾再帰を検出すると自動的に[[再帰]]を[[再帰]]ではなく展開してくれる。これを[[末尾再帰最適化]]といい、スタックを食いつぶすなどの[[再帰]]のデメリットをプログラマとコンパイラのコラボレーションで解決してくれる。


<!--
<!--