On Monday, 1 August 2022 at 14:15:31 UTC, pascal111 wrote:
We all know the strange syntax of lambda function within filter algorithm like "auto r = chain(a, b).filter!(a => a > 0);". My note is, don't we break D rules by leaving ";" after lambda function syntax?!

Many of D rules are taken from C, we know that, so a general basic rule is to put ";" after each statement, so the previous statement of filter should be "auto r = chain(a, b).filter!(a => a > 0;);"? Why D leaves ";" in this case?

In C ";" is a termination character, in D is more like to separate statements.

The lexer wouldn't need ";" for most cases like JavaScript and the expression syntax without ";" is better to read anyway.

However, the common settlement is to require a ";" where it makes logical sense and where it's still needed for the lexer. So we have this.

Reply via email to