match - Maple Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Programming : Logic : Boolean : match

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=110z310,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

 


Download Help Document

Was this information helpful?



Please add your Comment (Optional)
E-mail Address (Optional)
What is ? This question helps us to combat spam