> It is just operator precedence, which already makes multiplication > non-commutative if you ignore it. C also makes "f (b) * c" different > than "f c * (b)", although its semantics are less surprising (unless, > perhaps, c is parenthesized as well). Is that hateful in C?
Um, "f (b) * c" in C becomes "c * f (b)" if you reverse the order of the arguments to the multiplication operator. "f c * (b)" isn't meaningful.