On Sat, 2 Jun 2001 09:56:52 +0900
Albert Wagner <alwagner / tcac.net> wrote:

> Would one of you nice people on this thread please explain what the "problem" 
> is that you are all trying to solve?  I have read every post and I still 
> don't understand what it is that needs to be fixed.  Matz's comment on 
> "roles" [16120] came close, but I thought a block was a proc, that 
> occasionally, behind the scenes one was converted to the other.  You change 
> the syntax and you don't just highlight a mode, you create a new thing.  I 
> would really like to understand the problem.
> 

This thread started because I was intrigued by the syntax of block arguments not being the same as method arguments (ie, you must use |a,| to expect exactly one argument). I was missing that block arguments are not really *arguments*.
Matz told us that he was thinking about a new syntax that would be more method like (make them real *arguments*). To act like methods, arguments should be local to the block and not override an existing variable with the same name.
Then it rejoined some other very long threads about local scope of block arguments, and some suggestions reappeared.

Matz told us what he was going to do on the new block definition in [ruby-talk:15931], and nobody reacted to this. The only problem was the syntax: some people dislike "<...>". Forget the delimiter syntax problem for now, this is a minor problem and we cannot satisfy everybody. Does this solution solve almost all the problems in this thread? If not, can remaining problems be fixed even if this is implemented? (exporting new variables out of the block for example).
In this case, could we consider matz's objectives in this message will be implemented? Then we could start a thread about its syntax and other details. And another one about the problems still unsolved.

The problem that started this thread is solved by matz' solution. Do you agree with it (even if you dislike the syntax)?

Mike.
midulo.