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
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