---
title: "Rules"
language: "en"
type: "Guide"
summary: "Everything that the Wolfram Language does can be thought of as derived from its ability to apply general transformation rules to arbitrary symbolic expressions. The Wolfram Language provides flexible functions that give direct access to the Wolfram Language's powerful rule transformation engine."
sections: 
  - 
    title: "Representing Rules"
    link: "null"
  - 
    title: "Applying Rules"
    link: "null"
keywords: 
- apply rules to whole expression
- arrow
- controlled transformations
- deferred evaluation
- delayed evaluation
- delayed rules
- evaluation at a point
- immediate rules
- multiple matches for patterns
- preventing evaluation in rules
- production rules
- repeated rule application
- replace all
- replace list
- replace repeated
- replacement
- replacements
- ReplaceRepeated
- rewrite rules
- rule delayed
- rules
- searching
- selecting sublists
- sparse array
- sparse matrix
- sparse representation
- sparse vector
- sublists
- substitution
- temporary binding
canonical_url: "https://reference.wolfram.com/language/guide/Rules.html"
source: "Wolfram Language Documentation"
related_guides: 
  - 
    title: "Patterns"
    link: "https://reference.wolfram.com/language/guide/Patterns.en.md"
  - 
    title: "Options Processing"
    link: "https://reference.wolfram.com/language/guide/OptionsManagement.en.md"
  - 
    title: "Assignments"
    link: "https://reference.wolfram.com/language/guide/Assignments.en.md"
  - 
    title: "String Manipulation"
    link: "https://reference.wolfram.com/language/guide/StringManipulation.en.md"
related_functions: 
  - 
    title: "Replace"
    link: "https://reference.wolfram.com/language/ref/Replace.en.md"
  - 
    title: "ReplaceAll"
    link: "https://reference.wolfram.com/language/ref/ReplaceAll.en.md"
  - 
    title: "ReplaceAt"
    link: "https://reference.wolfram.com/language/ref/ReplaceAt.en.md"
  - 
    title: "ReplaceList"
    link: "https://reference.wolfram.com/language/ref/ReplaceList.en.md"
  - 
    title: "ReplaceRepeated"
    link: "https://reference.wolfram.com/language/ref/ReplaceRepeated.en.md"
  - 
    title: "Rule"
    link: "https://reference.wolfram.com/language/ref/Rule.en.md"
  - 
    title: "RuleDelayed"
    link: "https://reference.wolfram.com/language/ref/RuleDelayed.en.md"
  - 
    title: "SparseArray"
    link: "https://reference.wolfram.com/language/ref/SparseArray.en.md"
related_tutorials: 
  - 
    title: "Patterns and Transformation Rules"
    link: "https://reference.wolfram.com/language/tutorial/PatternsAndTransformationRules.en.md"
  - 
    title: "Applying Transformation Rules"
    link: "https://reference.wolfram.com/language/tutorial/TransformationRulesAndDefinitions.en.md#18035"
  - 
    title: "Variables in Pure Functions and Rules"
    link: "https://reference.wolfram.com/language/tutorial/ModularityAndTheNamingOfThings.en.md#1131"
---
# Rules

Everything that the Wolfram Language does can be thought of as derived from its ability to apply general transformation rules to arbitrary symbolic expressions. The Wolfram Language provides flexible functions that give direct access to the Wolfram Language's powerful rule transformation engine.

---

### Representing Rules

[`Rule`](https://reference.wolfram.com/language/ref/Rule.en.md) ([`->`](https://reference.wolfram.com/language/ref/Rule.en.md)) — immediate replacement rule for any pattern

[`RuleDelayed`](https://reference.wolfram.com/language/ref/RuleDelayed.en.md) ([`:>`](https://reference.wolfram.com/language/ref/RuleDelayed.en.md)) — delayed rule, with right-hand side evaluated only when used

---

### Applying Rules

[`ReplaceAll`](https://reference.wolfram.com/language/ref/ReplaceAll.en.md) ([`/.`](https://reference.wolfram.com/language/ref/ReplaceAll.en.md)) — apply replacement rules throughout an expression

[`ReplaceRepeated`](https://reference.wolfram.com/language/ref/ReplaceRepeated.en.md) ([`//.`](https://reference.wolfram.com/language/ref/ReplaceRepeated.en.md)) — apply replacement rules repeatedly until no change occurs

---

[`Replace`](https://reference.wolfram.com/language/ref/Replace.en.md) — apply replacement rules to a complete expression

[`ReplaceAt`](https://reference.wolfram.com/language/ref/ReplaceAt.en.md) — apply replacement rules to specific parts of an expression

[`ReplaceList`](https://reference.wolfram.com/language/ref/ReplaceList.en.md) — a list of all possible ways to apply rules

---

[`SparseArray`](https://reference.wolfram.com/language/ref/SparseArray.en.md) — give rules for values at particular positions in an array

## Tech Notes

* [Patterns and Transformation Rules](https://reference.wolfram.com/language/tutorial/PatternsAndTransformationRules.en.md)
* [Applying Transformation Rules](https://reference.wolfram.com/language/tutorial/TransformationRulesAndDefinitions.en.md#18035)
* [Variables in Pure Functions and Rules](https://reference.wolfram.com/language/tutorial/ModularityAndTheNamingOfThings.en.md#1131)

## Related Guides

* [`Patterns`](https://reference.wolfram.com/language/guide/Patterns.en.md)
* [Options Processing](https://reference.wolfram.com/language/guide/OptionsManagement.en.md)
* [`Assignments`](https://reference.wolfram.com/language/guide/Assignments.en.md)
* [String Manipulation](https://reference.wolfram.com/language/guide/StringManipulation.en.md)