Prevent any evaluation of an expression—Wolfram Documentation
HoldComplete[expr]
shields expr completely from the standard Wolfram Language evaluation process, preventing even upvalues associated with expr from being used.
Details
- HoldComplete allows you to use an expression that has not undergone any evaluation.
- HoldComplete has attribute HoldAllComplete and performs no operations on its arguments.
- HoldComplete is removed by ReleaseHold. »
- HoldComplete[e1,e2,…] maintains a sequence of unevaluated expressions to which a function can be applied using Apply.
- HoldComplete is generated by default by MakeExpression and can be inserted as a wrapper by such functions as ToExpression and Extract. »
- Unlike Hold, HoldComplete[expr] remains unevaluated even if expr is of the form f[args] and upvalues for f have been defined.
Examples
open all close allBasic Examples (1)
Allow no subexpression to evaluate:
Evaluate the expression by applying ReleaseHold:
Properties & Relations (6)
Possible Issues (2)
History
Introduced in 1996 (3.0)
Text
Wolfram Research (1996), HoldComplete, Wolfram Language function, https://reference.wolfram.com/language/ref/HoldComplete.html.
CMS
Wolfram Language. 1996. "HoldComplete." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/HoldComplete.html.
APA
Wolfram Language. (1996). HoldComplete. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/HoldComplete.html
BibTeX
@misc{reference.wolfram_2025_holdcomplete, author="Wolfram Research", title="{HoldComplete}", year="1996", howpublished="\url{https://reference.wolfram.com/language/ref/HoldComplete.html}", note=[Accessed: 22-February-2026]}
BibLaTeX
@online{reference.wolfram_2025_holdcomplete, organization={Wolfram Research}, title={HoldComplete}, year={1996}, url={https://reference.wolfram.com/language/ref/HoldComplete.html}, note=[Accessed: 22-February-2026]}