On Thu, Feb 13, 2003 at 09:01:52PM +0900, ts wrote: > >>>>> "B" == Brian Candler <B.Candler / pobox.com> writes: > > B> Essentially, we have four different behaviours now > > No, there are only 2 cases. No need to give complex explanation for > something which is simple. > > What you call a "block parameter" don't exist, this is is *just* an > assigned variable : understand this and you'll understand the rules used > by ruby actually. Of course you are right, but: (1) a=0 and {|a| ... } are two different syntaxes. It just so happens that they have the same behaviour. I found this REALLY surprising, as |a| looks like a formal parameter. It was the last piece of the jigsaw to fit for me. (2) Under the new rules, they will most definitely be different. That's why I think it is worth explicitly enumerating all four cases. Regards, Brian.