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.
| x_h | an expression with head h |
| x_Integer | an integer |
| x_Real | an approximate real number |
| x_Complex | a complex number |
| x_List | a list |
| x_Symbol | a symbol |
Patterns for objects with specified heads.
This replaces just those elements that are integers.
| Out[1]= |  |
|
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. |
The definition applies only when the argument of gamma is an integer.
| Out[3]= |  |
|
The object 4. has head Real, so the definition does not apply.
| Out[4]= |  |
|
This defines values for expressions with integer exponents. |
The definition is used only when the exponent is an integer.
| Out[6]= |  |
|