kmizuの日記

プログラミングや形式言語に関係のあることを書いたり書かなかったり。

Scala Tips

Iterator.continually()を使おう

Scalaの標準IOライブラリであるscala.io(.Source)は非常に腐ってます。読み込みしか対応してない上に、バイト列の読み込みもサポートしてないという代物。しかも、Scala 2.7まではscala.io.Sourceがそのままだとcloseできなかったりとか(今はcloseできます)…

ひょっとしたら役に立つかもしれないScala Tips(3) - 無名関数+パターンマッチの略記法

久しぶりのScala Tips。Scalaをそこそこ使っている人でも意外と知らない方が多いようなので、一応。たとえば、以下のようなコードがあったとする(やや恣意的な例だが): List("A", 1, 1.0, true, Nil).foreach{e => e match { case _: Int => println("Int")…

ひょっとしたら役に立つかもしれないScala Tips(2) - パターンマッチングの最適化 -

Scalaのパターンマッチングを用いたコードは、通常は if(...) { ... } else if(...) { ... }のような、上から順に条件を満たしているかをチェックして分岐するコードにコンパイルされるが、色々試して見たところ、整数を対象にしたパターンマッチングの場合…

ひょっとしたら役に立つかもしれないScala Tips(1) - プライマリコンストラクタ引数の隠蔽 -

先週金曜日のScala勉強会@豆蔵で、case classに関して、通常は公開されることを意識してつけないコンストラクタの仮引数名が公開されることになっちゃうので、慎重に名前を決めないといけないよねー、という感じのことをNyaRuRuさんがおっしゃってたのですが…