This is documentation for Mathematica 3, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.1)
 Documentation / Mathematica / The Mathematica Book / Reference Guide / Evaluation  /

A.4.1 The Standard Evaluation Sequence







The 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[ ... ][ ... ].