繁体   English   中英

没有尾调用优化的尾递归

[英]Tail recursion without tail call optimization

假设我们有两个版本的递归 function,其中一个是尾递归的。 如果使用的语言没有尾调用优化,那么使用 function 尾递归有什么好处? 据我了解,如果没有优化,function(尾部和非尾部)的每个版本都将使用相同数量的堆栈帧(在大多数情况下)。

我知道在某些情况下,例如 Fibonacci function,即使没有尾调用优化,使用尾调用也会更有效,因为它避免了双重调用。 但是,如果 function 的两个版本都没有进行双重调用怎么办? 尾递归 function 还会更有效吗?

该问题的答案取决于硬件和语言实现。 然而,在大多数情况下,我不得不认为简单的GOTOCALL - RETURN指令对更快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM