Поддерживает ли R надлежащую хвостовую рекурсию и где я могу найти документацию об этом?
Рекурсия хвоста по статистической среде R
Ответ 1
Очень легко узнать, что R не поддерживает оптимизацию хвостовой рекурсии:
f <- function(n) {
if (n != 0) f(n-1)
}
f(100000)
# Error: evaluation nested too deeply: infinite recursion / options(expressions=)?
Если бы хвостовые вызовы были оптимизированы для переходов, то эта функция прекратилась бы без проблем.
Ответ 2
Нет, R не поддерживает рекурсию хвоста.
Ответ 3
Эта ссылка, легко найденная с помощью Google, предполагает, что R не поддерживает хвостовую рекурсию и объясняет, почему.