Local variables & blocks

Isn't your weird the same as

  def weird
    x = nil
    [proc {x}, proc {|v| x=v}]
  end

and wouldn't this work under the new rules, too?

Under the new rules, you could make it slightly more weird like this:

  def weird1
    [proc {|v| x=v}, proc{x}]
  end

And under both old and new rules, you can have:

  def weird2(x)
    [proc {|v| x=v}, proc{x}]
  end

Cheers,

Brian.