Subject: bug#923: In CVS Emacs, calc-eval gives multiplication higher precidence than division

From: Stefan Monnier <[email-masked]>
Date: Sun, 07 Sep 2008 17:15:38 -0400

>>> That's not a bug.  While many systems give division a higher precendence
>>> than multiplication, that isn't a universal rule.
>> Actually, I don't know of any system that gives higher precedence to
>> division.

> According to Wikipedia:
>   An expression like 1/2x is interpreted as 1/(2x) by TI-82, but as
>   (1/2)x by TI-83. While the first interpretation may be expected by
>   some users, only the latter is in agreement with the standard rules
>   stated above. 

That could be due to a higher precedence, but could also be due to an
equal precedence together with left-associativity.  Given that (a*b)/c
is often mathematically equal to a*(b/c), the difference is generally
hard to see, unless rounding comes into play.

All textbooks and language references I know use the "equal precedence
and left associativity" rule rather than giving higher precedence to
the division.

>> The general rule that (AFAIK) all programming languages
>> follow (other than those that don't use infix-with-precedence, such as
>> Lisp and Smalltalk) is that * and / have the same precedence (and are
>> left associative).

> That behavior is available, but you have to ask for it by setting
> `calc-multiplication-has-precedence' to nil.

I know.  But we're talking about the default behavior.

        Stefan