递归函数(Recursion Functions)
优质
小牛编辑
133浏览
2023-12-01
递归在纯函数式编程中起着重要作用,Scala非常支持递归函数。 递归意味着函数可以重复调用自身。
尝试以下程序,它是递归的一个很好的例子,其中计算了传递数的阶乘。
例子 (Example)
object Demo {
def main(args: Array[String]) {
for (i <- 1 to 10)
println( "Factorial of " + i + ": = " + factorial(i) )
}
def factorial(n: BigInt): BigInt = {
if (n <= 1)
1
else
n * factorial(n - 1)
}
}
将上述程序保存在Demo.scala 。 以下命令用于编译和执行此程序。
Command
\>scalac Demo.scala
\>scala Demo
输出 (Output)
Factorial of 1: = 1
Factorial of 2: = 2
Factorial of 3: = 6
Factorial of 4: = 24
Factorial of 5: = 120
Factorial of 6: = 720
Factorial of 7: = 5040
Factorial of 8: = 40320
Factorial of 9: = 362880
Factorial of 10: = 3628800