This is documentation for Mathematica 8, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.1)


is an attribute which specifies that the first argument to a function is to be maintained in an unevaluated form.
Definitions for unevaluated expressions can implement call-by-name semantics:
The global variable has been modified:
Functions that operate on symbols often need the HoldFirst attribute:
Assignments do not evaluate their left-hand sides:
Use Evaluate to force evaluation of an argument of a HoldFirst function:
Suppress the evaluation of the first argument of a pure function:
Sequence splitting still happens for HoldFirst functions:
NHoldFirst protects arguments from N, but evaluates them normally otherwise:
New in 1