第一級関数 Scala において、関数は第一級関数 first-class function です。第一級関数なので、関数を値の様にして扱うことができます。例えば以下のように関数を f という値として定義できます。 val f:Int=>Int = x=>x*x println(f(3)) 結果は 9 が出力されます。 上記は以下と同じ意味になります。 val f:Function[Int, Int] = x=>x*x println(f.apply(3)) f(3) の呼び出しは実際には Function 型の apply メソッドの呼び出しでしかないのです。 さらに以下に書き換えることができます。 val f:Function[Int, Int] = new Function[Int, Int]{ def apply(x:Int):Int = x*x } println(f.apply