On Saturday, 23 June 2018 at 05:09:13 UTC, aedt wrote:
On Saturday, 23 June 2018 at 04:45:07 UTC, user1234 wrote:
On Saturday, 23 June 2018 at 01:27:30 UTC, aedt wrote:
for line in stdin.lines() {}
if condition {}
while condition {}
for init; condition; op {}
What's the rationale of keeping the requirement that the
condition of if/for/while must be wrapped with a parenthesis
(other than keeping parser simple)? Modern languages have
already dropped this requirement (i.e. Rust, Nim) and I don't
see any reason not to do so.
There is this case that requires parens:
if a && b c;
Is there a missing && or not ? It seems obvious for a human
but compiler parsers are "apparatchiks", i.e rules are rules.
That being said this would work by allowing parens for
disambiguation.
Same thing as the following"
return a && b;
I'm not saying to drop parens completely, I'm saying why is it
not optional. D seems to have no problem with x.to!string or
std.lines
I agree that this would be in adequation with certain stuff of
the D syntax, such as parens-less single template parameter.
Someone has to make a DIP for this otherwise we're good for one
of this sterile NG discussion leading to nothing, i.e
intellectual mast... well guess the word.