From: matz@... (Yukihiro Matsumoto) Date: 2001-06-03T00:19:59+09:00 Subject: [ruby-talk:16168] Re: Block arguments vs method arguments In message "[ruby-talk:16159] Re: Block arguments vs method arguments" on 01/06/02, Albert Wagner writes: |Would one of you nice people on this thread please explain what the "problem" |is that you are all trying to solve? There're TWO closely related but different problems. (a) The semantics of block parameters are defined by multiple assignment. This is because they are originally iteration variables. But they are sometimes used/expected like formal arguments (e.g. name shadowing, default value, etc.). Plus, |a| accepts any number of values, where |a,| takes only one value (this too is caused by multiple assignment semantics). (b) blocks introduce new local variable scope, i.e. a local variable that appears first in a block is not available out of the block. This is confusing sometimes. matz.