末尾呼び出し最適化
末尾呼出しのコードを、戻り先を保存しないジャンプに変換することによって、スタックの累積を無くし、効率の向上などを図る手法である。末尾呼出しの除去(tail call elimination)などとも言う。
code:js
// 階乗を計算する関数
function factorial(n) {
if (n === 0) {
return 1;
}
return n * factorial(n - 1); // 自分自身を呼び出す
}
console.log(factorial(3)); // 6となる