ファーストクラスオブジェクトの履歴
C言語では、数値や配列や構造体はファーストクラス。関数はそうではない
Smalltalkでは、関数はファーストクラス。
JavaScriptのFunctionもそうかな?
Pythonの関数もファーストクラスらしい。
Rubyのメソッドは全てオブジェクトに所属するため、メソッド単独では存在できない。だから正確にはファーストクラスではない。MethodオブジェクトはJavaと同じく単なるリフレクションだろう。Procオブジェクト自体はファーストクラス。
Scalaのメソッドは引数にそのまま入れられるけど、変数に入れられないからファーストクラスではない。
参考
http://d.hatena.ne.jp/nishiohirokazu/20100724/1279999839
http://tsumuji.cocolog-nifty.com/tsumuji/2010/08/ruby-python...
http://yugui.jp/articles/741
http://wota.jp/ac/?date=20100426