Tag: tail call optimization

在递归例程中是否存在“堆栈级太深”错误的解决方法?

Ruby中的递归函数中是否存在Stack Overflow错误的解决方法? 比方说,我有这个块: def countUpTo(current, final) puts current return nil if current == final countUpTo(current+1, final) end 如果我调用countUpTo(1, 10000) ,我会收到一个错误: stack level too deep (SystemStackError) 。 它似乎在8187处突破。是否有一些函数我可以调用告诉Ruby忽略堆栈的大小,或者增加最大堆栈大小的方法?