【问题标题】:When would I write a non-tail recursive function in Scala?我什么时候会在 Scala 中编写非尾递归函数?
【发布时间】:2014-08-28 11:45:42
【问题描述】:

由于非尾递归调用像 Java 一样使用堆栈帧,我认为您会非常谨慎地使用它,如果有的话。然而,鉴于它是最重要的工具之一,这似乎受到了严格的限制。

什么时候可以使用非尾递归函数?另外,有计划在未来取消内存限制吗?

【问题讨论】:

  • 你的意思是非尾递归但仍然递归的函数/方法?这些实际上经常出现。考虑使用递归来遍历一棵树,使用非尾递归递归最容易做到。
  • 这里几乎相同的问题:stackoverflow.com/questions/24630692/…

标签: scala recursion functional-programming stack-overflow


【解决方案1】:

在 Java 中安全的相同情况下,您正在使用的数据集永远不会变得庞大,并且性能不是您的应用程序的关键/热门路径。

另外,恕我直言,有时算法的非尾递归版本的清晰度要好于尾递归版本。

【讨论】:

    猜你喜欢
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    • 2018-03-17
    • 1970-01-01
    • 2020-04-03
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多