HoldAllComplete
✖
HoldAllComplete
is an attribute which specifies that all arguments to a function are not to be modified or looked at in any way in the process of evaluation.
Details

- By setting the attribute HoldAllComplete, you can effectively shield the arguments of a function from all aspects of the standard Wolfram Language evaluation process.
- HoldAllComplete not only prevents arguments from being evaluated, but also prevents Sequence objects from being flattened, Unevaluated wrappers from being stripped, and upvalues associated with arguments from being used.
- Evaluate cannot be used to override HoldAllComplete.
Examples
open allclose allBasic Examples (1)Summary of the most common use cases

https://wolfram.com/xid/0dc25cqtfg0a-elpafz


https://wolfram.com/xid/0dc25cqtfg0a-fhfasa

Properties & Relations (4)Properties of the function, and connections to other functions
HoldComplete is a standard container with attribute HoldAllComplete:

https://wolfram.com/xid/0dc25cqtfg0a-j8mwov


https://wolfram.com/xid/0dc25cqtfg0a-e8t0u

No form of evaluation control affects an expression with attribute HoldAllComplete:

https://wolfram.com/xid/0dc25cqtfg0a-mfz595


https://wolfram.com/xid/0dc25cqtfg0a-bi2tm9


https://wolfram.com/xid/0dc25cqtfg0a-d2omjr


https://wolfram.com/xid/0dc25cqtfg0a-fayu9r

https://wolfram.com/xid/0dc25cqtfg0a-fvnlrk

Substitution still happens inside an expression with attribute HoldAllComplete:

https://wolfram.com/xid/0dc25cqtfg0a-dkq45e

Unevaluated has the attribute HoldAllComplete:

https://wolfram.com/xid/0dc25cqtfg0a-c7ilcb

Possible Issues (2)Common pitfalls and unexpected behavior
HoldAllComplete affects only evaluation; input transformations are still applied:

https://wolfram.com/xid/0dc25cqtfg0a-cvaxms

HoldAllComplete does not prevent formatting:

https://wolfram.com/xid/0dc25cqtfg0a-6o1lu3

Add DisableFormatting to prevent formatting:

https://wolfram.com/xid/0dc25cqtfg0a-va5hcj

Neat Examples (1)Surprising or curious use cases
A fast way to compute the Hofstadter–Conway sequence [more info]:

https://wolfram.com/xid/0dc25cqtfg0a-mxr47u

https://wolfram.com/xid/0dc25cqtfg0a-mba45

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