Scala再帰関数
詳細
いちさいきかんすう
関数式プログラミングにおいてサイクルを実現する技術.
例:nを計算!
def factorial (n:Int):Int =
if (n<=0) 1
else n * factorial(n-1)
にじゅうかいきかんすう
最後の再帰関数のすべての再帰形式の呼び出しは、関数の最後に表示されます.
コンパイラが関数呼び出しを検出したときに最後に再帰すると、スタックで新しいレコードを作成するのではなく、現在のアクティブレコードが上書きされます.
トリプルコード
いちさいきかんすう
関数式プログラミングにおいてサイクルを実現する技術.
例:nを計算!
def factorial (n:Int):Int =
if (n<=0) 1
else n * factorial(n-1)
にじゅうかいきかんすう
最後の再帰関数のすべての再帰形式の呼び出しは、関数の最後に表示されます.
コンパイラが関数呼び出しを検出したときに最後に再帰すると、スタックで新しいレコードを作成するのではなく、現在のアクティブレコードが上書きされます.
トリプルコード
package test_first
object tailrec extendsApp{
@annotation.tailrec
def factorial(n:Int,m:Int):Int=
if(n<=0) m
else factorial(n-1,m*n)
println(factorial(5,1))
}
120