を試してみる。
//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