を試してみる。
// P05 (*) Reverse a list.
// Example:
// scala> reverse(List(1, 1, 2, 3, 5, 8))
// res0: List[Int] = List(8, 5, 3, 2, 1, 1)
def builtIn[T](xs: List[T]): List[T] = xs.reverse def recursive[T](xs: List[T]): List[T] = xs match { case Nil => xs case h :: tail => recursive(tail) ::: List(h) } // 末尾再帰版 def tailRecursive[T](xs: List[T]): List[T] = { def recursive[T](rest: List[T], result: List[T] ): List[T] = rest match { case Nil => result case h :: tail => recursive(tail, List(h) ::: result) } recursive(xs, Nil) }
解答例
foldLeftってのがあったか!
def foldLeft[T](xs: List[T]): List[T] = xs.foldLeft(List[T]()){(r, h) => h :: r}
No comments:
Post a Comment