7stud -- wrote in post #993798:
> Where does this syntax come from?
>
>   closed = Proc.new(over=0){over+=1}

It's invalid in 1.8:

>> Proc.new(0) {}
ArgumentError: wrong number of arguments (1 for 0)
  from (irb):2:in `initialize'
  from (irb):2:in `new'
  from (irb):2
  from :0

But accepted in 1.9.2:

>> Proc.new(0) {}
=> #<Proc:0x000000023cc380@(irb):1>

Seems to be undocumented, like much of ruby 1.9.
http://ruby-doc.org/core/classes/Proc.html

I can't see any obvious purpose for these args:

irb(main):006:0> c = Proc.new(1,2,3) { |x,y,z| p x,y,z }
=> #<Proc:0x00000001f17920@(irb):6>
irb(main):007:0> c.call(5)
5
nil
nil
=> [5, nil, nil]

-- 
Posted via http://www.ruby-forum.com/.