On Wed, Apr 25, 2018 at 10:14:11PM -0700, Łukasz Langa wrote:
So only use the Pascal one in expressions. But don't forget parentheses, otherwise it will bind the thing you probably didn't want anyway.
Binding expressions are no worse than any other expression: sometimes you need to bracket terms to change the default precedence, and sometimes you don't.
And sometimes, even if we don't need parens, we use them anyway because it makes the expression easier to read and understand.
Unless you have a language with no operator precedence at all, a purely left-to-right evaluation order like Forth or (I think?) APL, there will always be circumstances where parens are needed. Criticising binding- expressions for that reason, especially implying that we must always use parens, is simply FUD.
As soon as we have to wrap a part of an expression in parentheses, parsing the entire thing becomes more complex.
Unless it becomes less complex to read and understand.
I for one always have difficulty parsing complex boolean tests unless I bracket some or all of the parts, even when they're not strictly needed. Consequently I try very hard not to write complex bool tests in the first place, but when I can't avoid it, a few extra brackets really helps simplify the logic.
Often enough it will cause the expression to exceed whatever line length limit the codebase pledged not to exceed, causing one line to become three.
Just how often are your lines within two characters of the maximum column so that adding a pair of brackets () will "often enough" put it over the limit? Seems pretty unlikely to me. This sounds really like picking at straws.