Scala-recursion-functions

提供:Dev Guides
移動先:案内検索

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)
   }
}

上記のプログラムを Demo.scala に保存します。 このプログラムをコンパイルして実行するには、次のコマンドを使用します。

コマンド

\>scalac Demo.scala
\>scala Demo

出力

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