Scala递归函数

阅读更多

一 递归函数

在函数式编程中实现循环的一种技术。
例子:计算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,递归函数)