Scala の基礎

とりあえず3章くらいまで.

記号に見えるメソッドがスゴいと思う.

  • var / val があるよ
    • val は final
  • def で関数定義
    • def max(x: Int, y: Int): Int = if (x > y) x else y
  • :quit でインタプリタから抜ける
  • List
    • ::: - append
    • :: - cons
    • List() or Nil - '() or (list)
    • List(要素) - list
    • () - 配列っぽくアクセスできる.
    • foreach(s => ...) - ってブロックを書く
  • Tuple
    • _1, _2 のようにアクセスできる
  • Map
    • +, -> が使える

List.foreach とか

val l = List(1, 2, 3, 4, 5)
l.filter(s => s > 3).foreach(s => println(s))

Map とか

improt scala.collection.mutable.Map
val tm = Map[Int, String]()
tm += (1 -> "one")
tm += (4 -> "four")
println(tm(4))

態度としての優先順位

  1. val,イミュータブル,副作用のないメソッド
  2. var,ミュータブル,副作用のあるメソッド

JavaScripter とかだと,つい var って書いてしまいそうだけど,
できるだけ val だねっ.

2009/10/07 16:56 追記

  • while を使わない方法を探そう(while は値を返さないので,var の臭いがする)

参考
http://www.amazon.co.jp/exec/obidos/ASIN/4844327453/search042-22/ref=nosim/
Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala)