"for" statement issue
Nick Treleaven via Digitalmars-d
digitalmars-d at puremagic.com
Sat Oct 22 08:53:47 PDT 2016
On Friday, 21 October 2016 at 15:26:12 UTC, mogu wrote:
> [1,2,3].fold!((a, b) => a + b).writeln;
>
> =>
>
> [1,2,3].fold!{a, b => a + b}.writeln;
Probably (a, b => a + b) could be legal. Reasoning:
1. a could be an existing symbol in scope, otherwise it's an
undefined identifier error.
2. If a was interpreted as an existing symbol which is followed
by the comma operator, the expression (a) wouldn't have side
effects so should be a compile error.
3. The bracketed comma expression would have to return the lambda
b=>a+b as a value expression, which cannot compile because there
are no arguments supplied for calling the lambda to obtain a
value.
So this syntax seems available as it isn't currently used for
working code. A small change, maybe, but it's good to reduce
bracket nesting to help with reading complex nested expressions.
Destroy.
More information about the Digitalmars-d
mailing list