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} | |
| } | |
| } |