A.4.1 The Standard Evaluation SequenceThe following is the sequence of steps that Mathematica follows in evaluating an expression like h[ , , ... ]. Every time the expression changes, Mathematica effectively starts the evaluation sequence over again. • If the expression is a raw object (e.g., Integer, String, etc.), leave it unchanged. • Evaluate the head h of the expression. • Evaluate each element of the expression in turn. If h is a symbol with attributes HoldFirst, HoldRest, HoldAll or HoldAllComplete, then skip evaluation of certain elements. • Unless h has attribute HoldAllComplete strip the outermost of any Unevaluated wrappers that appear in the . • Unless h has attribute SequenceHold, flatten out all Sequence objects that appear among the . • If h has attribute Flat, then flatten out all nested expressions with head h. • If h has attribute Listable, then thread through any that are lists. • If h has attribute Orderless, then sort the into order. • Unless h has attribute HoldAllComplete, use any applicable transformation rules associated with f that you have defined for objects of the form h[ f[ , ... ], ... ]. • Use any built-in transformation rules associated with f for objects of the form h[ f[ , ... ], ... ]. • Use any applicable transformation rules that you have defined for h[ , , ... ] or for h[ ... ][ ... ]. • Use any built-in transformation rules for h[ , , ... ] or for h[ ... ][ ... ].
|