ANSI Common Lisp 12 Numbers 12.1 Number Concepts 12.1.1 Numeric Operations
18.104.22.168 Associativity and Commutativity in Numeric Operations
For functions that are mathematically associative (and possibly commutative),
a conforming implementation may process the arguments in any manner
consistent with associative (and possibly commutative) rearrangement. This does not
affect the order in which the argument forms are evaluated;
for a discussion of evaluation order, see Section 22.214.171.124.2.3 Function Forms.
What is unspecified is only the order in which the parameter values
are processed. This implies that implementations may differ in which
automatic coercions are applied; see Section 126.96.36.199 Contagion in Numeric Operations.
A conforming program can control the order of processing explicitly by
separating the operations into separate (possibly nested) function forms,
or by writing explicit calls to functions that perform coercions.
188.8.131.52.1 Examples of Associativity and Commutativity in Numeric Operations