R统计环境的尾递归

时间:2012-11-03 12:01:55

标签: r recursion functional-programming tail-recursion

R是否支持正确的尾递归?哪里可以找到有关此的文档?

3 个答案:

答案 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不支持尾递归并解释原因。