【问题标题】:Tail recursion without tail call optimization没有尾调用优化的尾递归
【发布时间】:2021-05-30 11:51:42
【问题描述】:

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

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

【问题讨论】:

    标签: recursion optimization tail-recursion


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2013-08-04
      • 2018-03-08
      • 1970-01-01
      • 2012-10-14
      • 1970-01-01
      • 2014-06-23
      • 2016-03-21
      • 2011-09-13
      相关资源
      最近更新 更多