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 all

Basic Examples  (1)

Properties & Relations  (4)

HoldComplete is a standard container with attribute HoldAllComplete:

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

Substitution still happens inside an expression with attribute HoldAllComplete:

Unevaluated has the attribute HoldAllComplete:

Possible Issues  (2)

HoldAllComplete affects only evaluation; input transformations are still applied:

HoldAllComplete does not prevent formatting:

Add DisableFormatting to prevent formatting:

Neat Examples  (1)

A fast way to compute the HofstadterConway sequence [more info]:

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.

CMS

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

BibTeX

@misc{reference.wolfram_2024_holdallcomplete, author="Wolfram Research", title="{HoldAllComplete}", year="1996", howpublished="\url{https://reference.wolfram.com/language/ref/HoldAllComplete.html}", note=[Accessed: 05-December-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_holdallcomplete, organization={Wolfram Research}, title={HoldAllComplete}, year={1996}, url={https://reference.wolfram.com/language/ref/HoldAllComplete.html}, note=[Accessed: 05-December-2024 ]}