Hold
Details

- Hold allows you to use an expression that has not undergone normal evaluation.
- Hold has attribute HoldAll and performs no operation on its arguments.
- Hold is removed by ReleaseHold. »
- Hold[e1,e2,…] maintains a sequence of unevaluated expressions to which a function can be applied using Apply.
- Hold can be inserted as a wrapper by such functions as ToExpression and Extract. »
- Even though expr itself is not evaluated, Hold[expr] may still evaluate if expr is of the form f[args], and upvalues for f have been defined. »
Examples
open allclose allBasic Examples (1)Summary of the most common use cases
Scope (1)Survey of the scope of standard use cases
Applications (2)Sample problems that can be solved with this function
Find the length of each expression in a held list without evaluation:

https://wolfram.com/xid/0delki-fr3y8d

https://wolfram.com/xid/0delki-jcp3r8


https://wolfram.com/xid/0delki-pnzk20

Evaluate every sum (only) inside a held expression:

https://wolfram.com/xid/0delki-kpgl84


https://wolfram.com/xid/0delki-gnnbi2


https://wolfram.com/xid/0delki-g4jx78


https://wolfram.com/xid/0delki-ig9mo

Properties & Relations (10)Properties of the function, and connections to other functions
Hold is a container with the attribute HoldAll:

https://wolfram.com/xid/0delki-ugxi7


https://wolfram.com/xid/0delki-iwy1m5

Use Evaluate to force evaluation of an argument of Hold:

https://wolfram.com/xid/0delki-8fboz

Unevaluated inside a held expression is not removed:

https://wolfram.com/xid/0delki-bcejf7

Sequence splicing still happens inside Hold:

https://wolfram.com/xid/0delki-2hgtl

Use the container HoldComplete to suppress even such transformations:

https://wolfram.com/xid/0delki-byz6s5

Upvalues work inside Hold:

https://wolfram.com/xid/0delki-bprvkf

https://wolfram.com/xid/0delki-mkv4p0

They do not work inside HoldComplete:

https://wolfram.com/xid/0delki-m1i7w7

https://wolfram.com/xid/0delki-lan3jv

Substitution works inside Hold:

https://wolfram.com/xid/0delki-iu25en

Insert into a held expression:

https://wolfram.com/xid/0delki-sil

ReleaseHold removes one level of Hold:

https://wolfram.com/xid/0delki-e2j8iu

HoldForm is like Hold but is normally not shown in the output:

https://wolfram.com/xid/0delki-of66a


https://wolfram.com/xid/0delki-l35fd

Hold can be used to freeze the result of ToExpression before it is evaluated:

https://wolfram.com/xid/0delki-gwv81u

Wolfram Research (1988), Hold, Wolfram Language function, https://reference.wolfram.com/language/ref/Hold.html.
Text
Wolfram Research (1988), Hold, Wolfram Language function, https://reference.wolfram.com/language/ref/Hold.html.
Wolfram Research (1988), Hold, Wolfram Language function, https://reference.wolfram.com/language/ref/Hold.html.
CMS
Wolfram Language. 1988. "Hold." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/Hold.html.
Wolfram Language. 1988. "Hold." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/Hold.html.
APA
Wolfram Language. (1988). Hold. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Hold.html
Wolfram Language. (1988). Hold. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Hold.html
BibTeX
@misc{reference.wolfram_2025_hold, author="Wolfram Research", title="{Hold}", year="1988", howpublished="\url{https://reference.wolfram.com/language/ref/Hold.html}", note=[Accessed: 23-March-2025
]}
BibLaTeX
@online{reference.wolfram_2025_hold, organization={Wolfram Research}, title={Hold}, year={1988}, url={https://reference.wolfram.com/language/ref/Hold.html}, note=[Accessed: 23-March-2025
]}