部分適用関数

Scalaスケーラブルプログラミングを読んで、ようやくなんのこっちゃか分かった。

def sum( a: Int, b: Int, c: Int ) = a + b + c
val a = sum _
a( 1, 2, 3 ) // 6

「_」を付けることで、部分適用関数からScalaがクラスを生成しインスタンスを返してくれる。
Scalaが生成したクラスはapplyメソッドを持っているので、a( 1, 2, 3 )は、a.apply( 1, 2, 3 )を実行するというわけか。
これを使えば「def」で定義された関数を関数オブジェクトに変換したりできると。
でもって、その場で実行しちゃいたいときは「_」を省略できちゃうのね。

便利なんだけど、理解してないと他のScalaコードが全然読めない。