Scala を使用して階乗を見つける方法は 2 つあります。非末尾再帰の方法が末尾再帰の方法と比較してどれだけ遅いかを知りたいです。
// factorial non-tail recursive
def fact1(n: Int): Int =
if (n==0) 1
else n*fact(n-1)
// factorial tail recursive
def fact(n: Int): Int = {
def loop(acc: Int, n:Int): Int =
if (n==0) acc
else loop(acc*n, n-1)
loop(1, n)
}
// a1 = Time.now
fact1(100)
// a2 = Time.now
// a2-a1
// b1 = Time.now
fact(100)
// b2 = Time.now
// b2-b1
Time.now の Ruby コードを書きました。Time.now
基本的に、 Scala のようなコードをどのように記述しますか?