Evaluation Control

Mathematica normally takes any expression it is given, and evaluates it as far as possible. But built into the Mathematica language is a collection of flexible primitives that allow finer control over the process of evaluation in cases where it is needed.


Evaluation Control for Complete Expressions

Hold hold an expression unevaluated

HoldForm display an expression in unevaluated form

Defer display unevaluated, but evaluate if given as Mathematica input

Evaluation Control for Function Arguments

HoldAll, HoldFirst, HoldRest attributes for specifying held function arguments

Evaluate immediately evaluate a function argument

Unevaluated pass a function argument unevaluated

More Detailed Control

ReleaseHold release hold constructs

HoldComplete ▪ HoldPattern ▪ HoldAllComplete ▪ SequenceHold ▪ Update

NHoldAll, NHoldFirst, NHoldRest prevent numerical evaluation of arguments

Manipulating Unevaluated Expressions

With insert variable values without evaluation

Extract extract numbered parts without evaluation

ReplaceAll(/.) ▪ ReplacePart ▪ Delete ▪ Position

ToString, ToExpression convert to and from string form

Global Evaluation Control

$IterationLimit ▪ $RecursionLimit ▪ TimeConstrained ▪ MemoryConstrained

Evaluation in Notebooks

Dynamic ▪ Refresh ▪ Evaluator

New to Mathematica? Find your learning path »
Have a question? Ask support »