Devin Mullins <twifkak / comcast.net> writes: > 1. class Foo; def thing; nil end end > 2. f = Foo.new; f.thing #=> nil > 3. m = f.method :thing; m.call #=> nil > 4. class Foo; def thing; 5 end end > 5. f.thing #=> 5 > 6. m.call #=> nil > > Heh, it seems that Ruby really does have first class > functions. ;) (Why is this happening, btw? Does this have > something to do with continuations?) No... nothing to do with continuations. It's quite simple: On line 3, a reference to the method body that was defined on line 1 is stored in the method object bound to ¡Æm¡Ç; the fact that the Foo#thing method is subsequently replaced on line 4 does not affect the method object, which still has its reference to the old method body. -- Daniel Brockman <daniel / brockman.se> So really, we all have to ask ourselves: Am I waiting for RMS to do this? --TTN.