___ (three _ characters) or BlankNullSequence
is a pattern object that can stand for any sequence of zero or more Wolfram Language expressions.
___h or BlankNullSequence[h]
can stand for any sequence of expressions, all of which have head h.
- Blank sequences work slightly differently depending on whether or not the head of the expression in which they appear is a symbol with the attribute Flat.
- Consider matching the pattern f[a1,a2,…,___,c1,…] against the expression f[a1,a2,…,b1,…,c1,…]. If f is a symbol with attribute Flat, then the ___ will be taken to stand for the expression f[b1,…]. If f is not a symbol with attribute Flat, then ___ will be taken to stand for the sequence of expressions b1, …. With a named pattern, such as x___, x can be used only as an element in an expression. The sequence of expressions b1, … is "spliced in" to replace x, thereby usually increasing the length of the expression.
- If ___ matches a sequence of length more than one, then the sequence will be represented by a Sequence object. In most uses of ___, however, the Sequence object will automatically be spliced into another expression, and will never appear explicitly.
Introduced in 1988