match - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


match

pattern matching

 

Calling Sequence

Parameters

Description

Examples

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 subss,pattern=expr.

• 

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

matchlnkk12=AlnkPkQ,k,s

true

(1)

s

A=1,P=1,Q=12

(2)

match5x23x+zx+y=ax+b2+c,x,s

true

(3)

s

a=5,b=z10310,c=120z2+y+310z920

(4)

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.

matchsinx+y=sinax+y,x,y,s

false

(5)

match5x23x+zx+y=ax+b2+cxz+d,x,z,s

true

(6)

s

a=5,b=310,c=1,d=y920

(7)

match5x23x+zx+y=ax+b2+fxcxz+dy,x,y,z,s

true

(8)

s

a=5,b=0,c=−1,d=1,f=−3

(9)

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.

matchsinx+4y=sinax+by,x,y,s

true

(10)

s

a=1,b=4

(11)

Take care that the pattern (containing the variables to be matched) appears on the right hand side of the first argument to match.

match2x+3=ax+b,x,s

true

(12)

matchax+b=2x+3,x,s

false

(13)

See Also

patmatch

solve[identity]

subs

type/polynom

typematch