このエントリは Scala Advent Calendar jp 2011 の四日目です。 Scala には implicit parameter という機能があります。 どういう機能かと言うと、引数に implicit という修飾子をつけると、関数呼び出しの際にその引数を省略することが可能になるというものです。 省略された引数はどう解決されるかというと、現在のスコープから見える範囲にあるこれまた implicit という修飾子がついた値からコンパイラが適切なものを選択して解決してくれます。 コンパイラが適切な値を選択できなかった場合、コンパイルエラーになります。 簡単な例を見てみましょう。 scala> trait ClassName[-A] { def apply(value: A): String } defined trait ClassName scala> def getCla