Scalaでバブルソート書いてみた。

Scalaのお勉強ってことで、バブルソートを書いてみたらこんな感じになった。

[java] package info.ukikusa.learn

object BubbleSort {

def main(args: Array[String]): Unit = { doSort(Array(6, 3, 5, 2, 0, 9, 1, 7, 8, 4)) }

def doSort(values: Array[Int]) { for ( i <- 1 to values.length; j <- 0 until values.length - i) { if (values(j) > values(j + 1)) { var tmp = values(j + 1) values(j + 1) = values(j) values(j) = tmp } } for ( i <- values) { println(i) } } } [/java]

Scalaは初心者なので、もっとスマートな書き方があるのかもしれません。。
for文は結構高機能。Iteratorもカバーしてくれるし、多重の繰り返し文も1つのfor文で回せちゃう。すごい!

慣れが必要そうな感じはしますが、そこは慣れで。

ちゃんと勉強しようと思って良さそうな Scala 本を探してたんですが、6月16日に出るScala実践プログラミングが気になってる。レビュー良かったら買おうかなぁ。。