R是否支持正确的尾递归?哪里可以找到有关此的文档?
答案 0 :(得分:18)
很容易发现R不支持尾递归优化:
f <- function(n) {
if (n != 0) f(n-1)
}
f(100000)
# Error: evaluation nested too deeply: infinite recursion / options(expressions=)?
如果尾部调用已经优化为跳转,那么此函数将终止而没有问题。
答案 1 :(得分:6)
不,R不支持尾递归。
答案 2 :(得分:6)
This reference,表明R不支持尾递归并解释原因。