Ruby has first-class Method instances, but methods aren't first
class, no?
irb(main):003:0> method
nil?).object_id
=> 1758564
irb(main):004:0> method
nil?).object_id
=> 1746454
I think it is fair to say that Methods are first class, but ruby has
no first class Method dictionaries. I would LOVE to have real method
dicts like Smalltalk.
:method returns a copy of the method requested, but it is first class
just the same. From c2.com:
"A language construct is said to be a FirstClass value in that
language when there are no restrictions on how it can be created and
used: when the construct can be treated as a value without
restrictions."
I think methods in ruby fit that (for the most part).