>
> But I would like them to be defined like this:
>
> [ inc: x | x + 1 ].
> (inc: 3) = 4
>
> [add: x to: y | x + y ].
> (add: 3 to: 4) = 7.
>
>
> What do you think? Is it feasible?
>

But you still need to have the block saved in a variable. You cannot
pollute global namespace with names of parameters within the block, not to
mention the fact that most blocks in the system have same parameter names.
Now while the idea seems interesting; I cannot imagine how it would work in
practice. Imagine collection's "do:" method explicitly stating the name of
the argument, which would force me to name it in such and such way which
would actually impair the readability.
I am sure others will have different opinions.

However if you want to try it out, you should apart from Opal have to look
also at AST-Core since you are changing syntax.

Also I am thinking that combination of variable name + named arguments
could perhaps be done purely with overriding doesNotUnderstand: method in
BlockClosure and calling value:value: internally. (Or even cull:cull:, but
form what I've heard that has some dire performance issues); this could
perhaps even solve my comment about enforced naming.

Peter

>

Reply via email to