長い間この疑問を抱いていたのですが、答えがわかりません。問題は、すべての再帰関数に同じことを行う反復関数があるかどうかです。
例えば、
factorial(n) {
if (n==1) { return 1 }
else { return factorial(n-1) }
}
これは繰り返し簡単に書き直すことができます:
factorial(n) {
result = 1;
for (i=1; i<=n; i++) {
result *= i
}
return result
}
しかし、他にももっと複雑な再帰関数がたくさんあるので、一般的な答えはわかりません。これは、理論的なコンピューター サイエンスの問題でもある可能性があります。