Listのreverse
再帰のべんきょ
こっちのコードはコップ本から
//Scala def reverse[T](lst: List[T]): List[T]= lst match { case List() => lst case head :: tail => reverse(tail) ::: List(head) } println(reverse(List(1,2,3))) //=>List(3,2,1)
末尾再帰。なってる?
//Scala def reverse[T](lst: List[T]): List[T]={ def reverseLoop[T](lst: List[T], reversed: List[T]): List[T]= lst match { case List() => reversed case head :: tail => reverseLoop( tail, List(head) ::: reversed) } reverseLoop(lst,List()) } println(reverse(List(1,2,3))) //=>List(3,2,1)