Scala、少しだけ勉強した.

しょっぱな、インストールでつまずいたw.
ポートが古かったみたい

sudo port selfupdate
sudo port install scala

WEB+DB PRESS Vol.43

WEB+DB PRESS Vol.43

の簡単な、やつを試した.irbぽっく対話的にも書けるんですね.


http://www.scala-lang.org/docu/
ドキュメントは上記から.

http://www.scala-lang.org/docu/files/ScalaTutorial.pdf
を使って、Case classes and pattern matchingを写経.
数学っちくに簡潔に表記できるところが嬉しい点なのかな.


見ていて、はっとしたのは
http://www.scala-lang.org/docu/files/ScalaByExample.pdf
のA First Exampleでクイックソートを簡潔に表現していたところ.

def sort(xs: Array[Int]): Array[Int] = 
	if (xs.length <= 1) xs 
	else { 
		val pivot = xs(xs.length / 2) 
		Array.concat( 
			sort(xs filter (pivot >)), 
			xs filter (pivot ==), 
			sort(xs filter (pivot <))) 
	}

val num = Array(3,1,4,1,5,9,2)
sort(num) foreach println