008-loop.md の一番最後の factorial 関数の例ですが、
このコードは末尾再帰になっている。
とありますが、なってないように見えます。
私の知ってる末尾再帰は次のようなものです。
int factorial(int n, int acc=1) {
if (n <= 1) {
return acc;
} else {
return factorial(n - 1, n * acc);
}
}
// =>
int factorial_loop(int n) {
int acc = 1;
while (true) {
if (n <= 1) {
return acc;
}
acc *= n;
n--;
}
}
008-loop.md の一番最後の factorial 関数の例ですが、
とありますが、なってないように見えます。
私の知ってる末尾再帰は次のようなものです。