This is documentation for Mathematica 8, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.2)


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.
  • By setting the attribute HoldAllComplete you can effectively shield the arguments of a function from all aspects of the standard Mathematica 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.
Click for copyable input
Click for copyable input
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:
HoldAllComplete affects only evaluation; input transformations are still applied:
A fast way to compute the Hofstadter-Conway sequence :
New in 3