2014-06-26 13:11 GMT-03:00 Richard Sargent <richard.sargent@gemtalksystems.com>:
Esteban A. Maringolo wrote
If one thing confuses people in that realm is non arithmetic precedence: Eg. 2 + 3 * 4 = 20 instead of the "expected" 14.
And we're not going to change that either. It's not worthy, and I doubt if it is possible at all.
I'm probably late to the party with this reply. The primary reason for not changing this is that it would be incorrect. It comes down to intrinsic versus extrinsic meaning. A multiple operator has an intrinsic meaning: it means multiple. But a message name does not have intrinsic meaning (other than it is a good idea to have the name represent what it does). The meaning of a message is determined by the receiver. e.g. if PetitParser defines #* to mean "0 or more repetitions", what happens when someone has decided that it should be evaluated before #+?
That's exactly why I said it is not worth it. When the expression is with numeric literals is one thing, as soon as you're using variables it is something different. What I meant is changing #~= is as fanciful as doing that.
Message sending precedence can only be defined in terms of the type of message: unary, binary (or infix), and keyword, since the interpretation of the message is the receiver's responsibility, not the compiler's.
That's why I said I doubt if it is feasible. Esteban A. Maringolo