Scala 递归函数

  • 递归函数

    递归在纯函数式编程中起着重要作用,而Scala很好地支持递归函数。递归意味着函数可以重复调用自身。尝试以下程序,这是递归的一个很好的示例,其中计算了传递的数字的阶乘。
    
    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)
       }
    }
    
    尝试一下
    输出:
    
    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