Scalaでもう一度バブルソート書いてみた。

一度目はこちら。
パターンマッチングを覚えたのでバブルソートがもっとスマートに書けないか挑戦してみた。 [code language="scala"] def bubble(in : List[Int]): List[Int] =
in match { case Nil => Nil case a::b::tail if a > b => b::bubble(a::tail) case a::tail => a::bubble(tail) } def sort(in : List[Int]): List[Int] = {
var sorted = bubble(in) sorted match { case Nil => Nil case _ => sort(sorted.init):::List(sorted.last) } }

val in = List(4, 6, 5, 3, 8, 2, 7, 9, 1)
println("Sorted " + sort(in))
[/code] あんまり変わってない。。気がする…