In message "[ruby-talk:16159] Re: Block arguments vs method arguments"
    on 01/06/02, Albert Wagner <alwagner / tcac.net> 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.