scalac ( Scalaコンパイラ)が末尾再帰を最適化しないのはなぜですか?
これを示すコードとコンパイラの呼び出し:
> 猫 foo.scala クラス Foo { def ifak(n: Int, acc: Int):Int = { もし (n == 1) acc そうでなければ ifak(n-1, n*acc) } } > scalac foo.scala > jd-gui Foo.class import scala.ScalaObject; 公開クラス Foo ScalaObject を実装する { public int ifak(int n, int acc) { return ((n == 1) ? acc : ifak(n - 1, n * acc)); } }