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

Naming Pieces of PatternsPutting Constraints on Patterns

2.3.4 Specifying Types of Expression in Patterns

You can tell a lot about what "type" of expression something is by looking at its head. Thus, for example, an integer has head Integer, while a list has head List.

In a pattern, _h and x_h represent expressions that are constrained to have head h. Thus, for example, _Integer represents any integer, while _List represents any list.

Patterns for objects with specified heads.

This replaces just those elements that are integers.

In[1]:= {a, 4, 5, b} /. x_Integer -> p[x]


You can think of making an assignment for f[x_Integer] as like defining a function f that must take an argument of "type" Integer.

This defines a value for the function gamma when its argument is an integer.

In[2]:= gamma[n_Integer] := (n - 1)!

The definition applies only when the argument of gamma is an integer.

In[3]:= gamma[4] + gamma[x]


The object 4. has head Real, so the definition does not apply.

In[4]:= gamma[4.]


This defines values for expressions with integer exponents.

In[5]:= d[x_^n_Integer] := n x^(n-1)

The definition is used only when the exponent is an integer.

In[6]:= d[x^4] + d[(a+b)^3] + d[x^(1/2)]


Naming Pieces of PatternsPutting Constraints on Patterns