WOLFRAM

Hold[expr]

maintains expr in an unevaluated form.

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 all

Basic Examples  (1)Summary of the most common use cases

Hold an expression to prevent evaluation:

Out[1]=1

Release the hold:

Out[2]=2

Scope  (1)Survey of the scope of standard use cases

Extract a part without allowing it to evaluate:

Out[1]=1

Applications  (2)Sample problems that can be solved with this function

Find the length of each expression in a held list without evaluation:

Out[2]=2
Out[3]=3

Evaluate every sum (only) inside a held expression:

Out[1]=1
Out[2]=2
Out[3]=3
Out[4]=4

Properties & Relations  (10)Properties of the function, and connections to other functions

Hold is a container with the attribute HoldAll:

Out[1]=1
Out[2]=2

Use Evaluate to force evaluation of an argument of Hold:

Out[1]=1

Unevaluated inside a held expression is not removed:

Out[1]=1

Sequence splicing still happens inside Hold:

Out[1]=1

Use the container HoldComplete to suppress even such transformations:

Out[2]=2

Upvalues work inside Hold:

Out[2]=2

They do not work inside HoldComplete:

Out[4]=4

Substitution works inside Hold:

Out[1]=1

Insert into a held expression:

Out[1]=1

ReleaseHold removes one level of Hold:

Out[1]=1

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

Out[1]=1

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

Out[1]=1
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.

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

@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 ]}

@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 ]}