递归函数在函数式编程的语言中起着重要的作用。
Scala 同样支持递归函数。
递归函数意味着函数可以调用它本身。
以上实例使用递归函数来计算阶乘:
object Test { def main(args: Array[String]) { for (i <- 1 to 10) println(i + " 的阶乘为: = " + factorial(i) ) } def factorial(n: BigInt): BigInt = { if (n <= 1) 1 else n * factorial(n - 1) }}
执行以上代码,输出结果为:
$ scalac Test.scala$ scala Test1 的阶乘为: = 12 的阶乘为: = 23 的阶乘为: = 64 的阶乘为: = 245 的阶乘为: = 1206 的阶乘为: = 7207 的阶乘为: = 50408 的阶乘为: = 403209 的阶乘为: = 36288010 的阶乘为: = 3628800