遞歸函數(shù)在函數(shù)式編程的語(yǔ)言中起著重要的作用。
Scala 同樣支持遞歸函數(shù)。
遞歸函數(shù)意味著函數(shù)可以調(diào)用它本身。
以上示例使用遞歸函數(shù)來(lái)計(jì)算階乘:
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)
}
}執(zhí)行以上代碼,輸出結(jié)果為:
$ scalac Test.scala $ scala Test 1 的階乘為: = 1 2 的階乘為: = 2 3 的階乘為: = 6 4 的階乘為: = 24 5 的階乘為: = 120 6 的階乘為: = 720 7 的階乘為: = 5040 8 的階乘為: = 40320 9 的階乘為: = 362880 10 的階乘為: = 3628800