def reverse[A](xs: List[A]): List[A] = {
(List.empty[A] /: xs){(x, y) => y :: x}
}
の方が読みやすい?
でも右畳込みの場合, この書き方だとWindowsでバックスラッシュが円記号になるから,直感的じゃなくなるんだよな…
def reverse[A](xs: List[A]): List[A] = {
(List.empty[A] /: xs){(x, y) => y :: x}
}
の方が読みやすい?
でも右畳込みの場合, この書き方だとWindowsでバックスラッシュが円記号になるから,直感的じゃなくなるんだよな…
/** | |
* reverseを畳み込みを使って実装してみた. | |
*/ | |
object reverseApp extends App { | |
val l = List(1, 2, 3, 4, 5) | |
reverse(l) foreach println // 結果は 5, 4, 3, 2, 1 | |
val l2 = List("a", "b", "c") | |
reverse(l2) foreach println // 結果は "c", "b", "a" | |
def reverse[A](xs: List[A]): List[A] = { | |
xs.foldLeft(List.empty[A]){(x, y) => y :: x} | |
} | |
} |