On Sunday, 6 November 2016 at 05:07:10 UTC, Andrei Alexandrescu
wrote:
if (auto variable = fun(); variable != 42) {
...
}
Why does the word "variable" need to appear twice? It seems
simpler to allow punctuation around existing syntax:
// possible future D
if ((auto variable = fun()) != 42) {
...
}
Avoiding stuttering is nice, but maybe it could be made a bit
clearer if declarations were allowed for ref arguments and we
used a named function:
alias let = (ref v) => v;
if (let(auto variable = fun()) != 42) {...}
The same feature allows tuple unpacking:
produceTuple.unpack(auto str, int i);
C# has argument declarations. Just an idea. I personally like the
C++ syntax too as local variable names are usually short and it
avoids brackets.