From: Lennon Day-Reynolds Date: 2004-08-04T04:23:21+09:00 Subject: Re: Closure question Re-defining the method 'count' within its own scope won't really help; you could do some sort of undef/def swap, but I think that's more complexity than you really need. To emulate an anonymous closure with no associated object instance in Ruby, you need to use a 'proc' object bound in a context where your counter variable is in scope. For example: --- def make_counter i = 0 proc { i+=1 } end c = make_counter c.call => 1 c[] # alias for '.call' => 2 d = make_counter d[] => 1 --- Does that help? Lennon