Tuesday, September 06, 2011

Mac OS X Lion で Scala を使ってみる

先日参加した飲み会で、リスパーの方から「ScalaいいよScala」と強いご推薦をいただいたので、遅ればせながら私もScalaを使ってみることにしました。本も買ってきた! 買ってきた、っていうか、amazonですけど。


scalaの本買ってみた :-)

図1. Scalaの本も買いましたー


とりあえずScalaをインストールします。Scalaのサイトからもダウンロードできますが、ここはひとつみんなだいすきMacPortsで。ちなみに作業時の私の環境はMac OS X 10.7.1で MacPortsは2.0.1です。次のようにしてインストールします。


$ sudo port install scala29

簡単でいいよねー。インストールできたら早速使ってみたいんですが、その前に


$ sudo scala_select scala29

これをやっておくとscala-2.9じゃなくてscalaでscala29が使えます。scala_selectはscalaを入れると一緒に入るはず。まあ、自分でシンボリックリンクを張ってもいいと思います。


インストールできたので、バージョンの確認。


$ scala -version
Scala code runner version 2.9.0.1 -- Copyright 2002-2011, LAMP/EPFL
$ scalac -version
Scala compiler version 2.9.0.1 -- Copyright 2002-2011, LAMP/EPFL

では Scala coe runnerの方を起動。対話環境みたいになりますので、なんか入れてみます。


$ scala
Welcome to Scala version 2.9.0.1 (Java HotSpot(TM) 64-Bit Server VM,
Java 1.6.0_26).
Type in expressions to have them evaluated.
Type :help for more information.

scala> 1+2*3
res0: Int = 7

おー :-) ちなみにこの例題は参考文献[2]の最初の例です。もうひとつ、今度は関数を定義してみます。


scala> def square(x:Int):Int ={ x*x }
square: (x: Int)Int

scala> square(3)
res1: Int = 9

おー ^^; コンパイラの方も試してみます。


$ cat Square.scala 
object Square {
  def main(arg:Array[String]) = {
    var input = arg(0).toInt
    printf("%d!\n", square(input))
  }
  def square(x:Int):Int = { x*x }
}
$ scalac Square.scala
$ scala Square 6
36!

おお ^^; ということで、しばらく遊べそうです :-)


参考文献

  1. "The Scala Programming Language", http://www.scala-lang.org/
  2. Jeffrey D. Ullman, "Elements of ML Programming, ML97 Edition (2nd Edition)", Prentice Hall, 1997.