このページタイトルは、正確には、defで定義された関数っぽいもの != ファーストクラスオブジェクトであるべきなのですが、それだとタイトルだけ見たときによくわからないだろうと考え、このようなタイトルにしました。 まず結論だけ先に書くと、Scalaでは、メソッドおよびその他のdefで定義されたものはファーストクラスオブジェクトではありません。これは、次のような簡単なコードで確かめられます。 scala> object Foo { | def foo(x: Int) { println("foo" + x) } | } defined module Foo <scala> val fooMethod = Foo.foo // fooMethod変数をfooメソッドに束縛したい <console>:6: error: missing arguments for method foo in obj