def fact(x:Int):Int= x match { case 1 => 1; case n => n*fact(n-1); } lazy val fact: (Int, Int) => Int = (_: Int, _: Int) match { case (1, n) => n; case (n, m) => fact(n - 1, n * m); } lazy val fact: (Int, Int) => Int = { case (1, n) => n; case (n, m) => fact(n - 1, n * m); }
scala 递归函数的几种写法,布布扣,bubuko.com
原文:http://www.cnblogs.com/scala/p/3608514.html