is equivalent to expr for pattern matching, but maintains expr in an unevaluated form.
- HoldPattern has attribute HoldAll.
- The left‐hand sides of rules are usually evaluated, as are parts of the left‐hand sides of assignments. You can use HoldPattern to stop any part from being evaluated.
Basic Examples (4)
Set up a pattern whose left-hand side is kept unevaluated:
Use the pattern:
Make a definition without the argument of f being evaluated:
Log[a,b] autoevaluates to Log[b]/Log[a], so there is a match:
Cases[e,patt->rhs] finds elements that match patt; use HoldPattern to find rules: