Evaluation Control

The Wolfram Language normally takes any expression it is given, and evaluates it as far as possible. But built into the Wolfram 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 Wolfram Language 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

Keys, Values extract keys and values without evaluation

ReplaceAll(/.)  ▪  ReplacePart  ▪  Delete  ▪  Position

ToString, ToExpression convert to and from string form

Global Evaluation Control

$IterationLimit  ▪  $RecursionLimit  ▪  TerminatedEvaluation

Resource Constraints

TimeConstrained  ▪  MemoryConstrained

Evaluation in Notebooks

Dynamic  ▪  Refresh  ▪  Evaluator

Inactivated Expressions

Inactivate inactivate all parts of an expression, printing them in gray

Activate re-activate part of an expression

Inactive wrapper to put around every symbol in an inactive expression

IgnoringInactive pattern match ignore inactive wrappers

DisableFormatting prevent the formatting of held expressions