|
Calling Sequence
|
|
match(expr = pattern, v, 's')
match(expr = pattern, {v1, v2, ..., vN}, 's')
|
|
Parameters
|
|
expr
|
-
|
expression of type algebraic to be matched
|
pattern
|
-
|
pattern (also of type algebraic) to match
|
v
|
-
|
name of the main variable
|
's'
|
-
|
name of the return argument
|
{v1, v2, ..., vN}
|
-
|
names of the main variables
|
|
|
|
|
Description
|
|
•
|
The match(expr = pattern, v, 's') calling sequence returns true if it can match expr to pattern for some values of the variables (excluding the main variable, v). Otherwise, it returns false.
|
•
|
The match(expr = pattern, {v1, v2, ..., vN}, 's') calling sequence returns true if it can match expr to pattern for some values of the variables (excluding the main variables, {v1, v2, ..., vN}). Otherwise, it returns false.
|
|
Note: In the multiple main variable case, the pattern specified must be a polynomial in all, or all but one of, the main variables. That is, type(pattern, polynom(anything, vI)) must be true for (N - 1) values of I in the range 1, 2, ..., N. Otherwise, the match command returns false.
|
•
|
If the match is successful, s is assigned a substitution set such that .
|
•
|
The main variables must be matched exactly in the pattern. In other words, the main variables cannot be substituted for any value.
|
•
|
The match command attempts to compute expressions to satisfy the pattern, as opposed to the typematch command that matches the form of the objects.
|
|
|
Examples
|
|
In the multiple main variable case, if the pattern is not a polynomial in (all but one of) the main variables, the match command always returns false.
The pattern is polynomial in one of the two main variables, and suitable values can be found for all non-main variables in the following example.
Take care that the pattern (containing the variables to be matched) appears on the right hand side of the first argument to match.
|
|
|