Re:Regular, Recursive, Restricted
by munificent on Wednesday June 05, 2024 @07:39PM
(#40591890)
Smalltalk does have precedence, just not among infix operators. It has keyword, infix, and postfix expressions and needs to specify the relative precedence between those. In other words, the language has to decide if:
a b: c - d e
Is parsed like: a b: (c - (d e))
a b: ((c - d) e)
(a b: c) - (d e)
(a b: (c - d)) e
((a b: c) - d) eI spend far more time reading code than typing it, so the time to type () is in the noise compared to the time to remember precedence rules while reading.
If there were only a couple of operators, maybe precedence would be manageable, but there aren't.
(that said, I think it's worth it: an afternoon spent providing precedence is easily paid back —in an expression-oriented language, anyway— in avoiding myriad pairs of parens)