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


maintains expr in an unevaluated form.
  • Hold has attribute HoldAll, and performs no operation on its arguments.
  • Hold maintains a sequence of unevaluated expressions to which a function can be applied using Apply.
  • Even though expr itself is not evaluated, Hold[expr] may still evaluate if expr is of the form , and upvalues for f have been defined. »
Hold an expression to prevent evaluation:
Release the hold:
Hold an expression to prevent evaluation:
Click for copyable input
Release the hold:
Click for copyable input
Find the length of each expression in a held list without evaluation:
Evaluate every sum (only) inside a held expression:
Hold is a container with the attribute HoldAll:
Use Evaluate to force evaluation of an argument of Hold:
Unevaluated inside a held expression is not removed:
Sequence splicing still happens inside Hold:
Use the container HoldComplete to suppress even such transformations:
Upvalues work inside Hold:
They do not work inside HoldComplete:
Substitution works inside Hold:
Insert into a held expression:
ReleaseHold removes one level of Hold:
HoldForm is like Hold, but is normally not shown in the output:
New in 1