[Notes] 简单的 Scala 尾递归函数

Posted wander4096

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Notes] 简单的 Scala 尾递归函数相关的知识,希望对你有一定的参考价值。

以斐波那契数列的计算函数为例, 实践 Scala 中尾递归函数的编写

object Test extends App {
  def fib(n: Int): Int = {
    @annotation.tailrec
    def fib_iter(f0: Int, f1: Int, cnt: Int): Int =
      if (cnt <= 0) f0
        else fib_iter(f1, f0+f1, cnt-1)
    fib_iter(0, 1, n)
  }
  
  (0 until 10).foreach { n => println(fib(n)) }
}

以上是关于[Notes] 简单的 Scala 尾递归函数的主要内容,如果未能解决你的问题,请参考以下文章

scala-尾递归

从示例逐渐理解Scala尾递归

Scala尾递归优化

scala实战学习-尾递归函数

如何使涉及期货尾递归的函数?

在 trait 中定义的 Scala 尾递归流处理器函数持有对流头的引用