欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Scala递归函数 博客分类: Scala Scala递归函数 

程序员文章站 2024-03-21 18:37:10
...

一 递归函数

在函数式编程中实现循环的一种技术。
例子:计算n!
def factorial (n:Int):Int = 
  if (n<=0) 1
  else n * factorial(n-1)
 
二 尾递归函数
尾递归函数中所有递归形式的调用都出现在函数的末尾。
当编译器检测到一个函数调用时尾递归的时候,它就覆盖当前的活动记录而不是在栈中去创建一个新的。
 
三 代码
  1. package test_first
  2. object tailrec extendsApp{
  3. @annotation.tailrec
  4. def factorial(n:Int,m:Int):Int=
  5. if(n<=0) m
  6. else factorial(n-1,m*n)
  7. println(factorial(5,1))
  8. }
 
四 运行结果
120
相关标签: Scala 递归函数