On 2015-07-17 10:16, "Marc =?UTF-8?B?U2Now7x0eiI=?= <schue...@gmx.net>" wrote:

Does your implementation support parameterized lambdas? I can already
see the next ambiguity:

     someRange.each (element) {
         writeln(element);
     }

Do the parentheses belong to the lambda on the right or the function on
the left?

Currently, in the above example, "element" is interpreted as an argument to "each".

No, the current implementation does not support parameters. It's a really simple modification in the parser. If we really want to support this feature more work could be put in to this and make it work.

I would say that it should first try to interpret "element" as an argument to "each", if that doesn't work, try as a parameter for the delegate. Just going with the longest match, if that doesn't work try the next thing.

This feature has come up before, one of the suggestions back then was to do allow this syntax:

someRange.each(start; element) {
    writeln(element);
}

Everything after the semicolon would be interperted as parameters for the delegate.

--
/Jacob Carlborg

Reply via email to