Scala に挑戦
ここ最近Scalaという言語が人気なようで*1、ちょいと触ってみたいと思う。
ではまずはScalaのインストール。
今回は次のサイトから 2.10.3をインストールした。
http://www.scala-lang.org/download
Scalaの特徴として、オブジェクト指向言語と関数型言語のハイブリッド言語であることが挙げられるそうな。
それぞれの特徴をみてみよう。
オブジェクト指向のサンプル
非常に簡単なクラスのサンプルコードを書いてみる。
// Person.scala class Person(name: String) { def greet() = println(s"My name is $name.") } var aPerson = new Person("Bob") aPerson.greet()
実行結果は
>scala Person.scala My name is Bob.
関数型のサンプル
非常に簡単なリスト操作を書いてみる。
面倒なので対話型インタープリタにて確認した。
scala> List(20, 14, 3, 15, 6, 18).filter(_ >= 10) res0: List[Int] = List(20, 14, 15, 18)
また比較として他の関数型言語であるHaskellとScheme(Gauche)のコードも書いてみる。
Prelude> filter (>=10) [20, 14, 3, 15, 6, 18] [20,14,15,18]
gosh> (filter (lambda(x) (>= x 10)) '(20 14 3 15 6 18)) (20 14 15 18)
本日のまとめ
静的型付け言語でありながらも
型推論と関数型のために非常にコードがシンプルでよい。
今回試していないがパターンマッチングも使えるようだ。
ただきちんと使いこなすには、まだまだ勉強が必要だ。