Csaba Henk wrote:
...
> So what I can imply there are two kind of closures in ruby: proc objects and
> lightweight closures used with yield. Now I wonder, what's the difference,
> what is the addon that is provided with a proc object but is missing in case
> of the "lightweight closures"?

One reason to create a Proc instead of just yielding is that the Proc 
can be saved away somewhere and called later, after the scope of the 
block is gone:

def defer(&bl)
   @later_stuff = bl
end

def handle_deferred
   @later_stuff.call
end

defer do
   puts "hello"
end

handle_deferred