を試してみる。
//P04 (*) Find the number of elements of a list. //Example: //scala> length(List(1, 1, 2, 3, 5, 8)) //res0: Int = 6 def lengthBuiltIn[T](xs: List[T]): Int = xs.length // 末尾再帰版 def lengthTailRecursive[T](xs: List[T]): Int = { def recursive(l: List[T], n: Int): Int = l match { case Nil => 0 case _ :: Nil => n + 1 case _ :: tail => recursive(tail, n + 1) } recursive(xs, 0) } def length[T](xs: List[T]): Int = { def recursive(l: List[T]): Int = l match { case Nil => 0 case _ :: tail => 1 + recursive(tail) } recursive(xs) }
解答例
No comments:
Post a Comment