type based pattern matching
typematch(e, t, 's')
any type, possibly augmented by :: operators
(optional) a name
The typematch command is a boolean valued function. It returns true if the input expression e matches the type t. Normally the type t will contain pattern bindings, that is, expressions of the form vi::ti where v_i is a variable For example in the command typematch(e,v::name=range), the purpose of the v variable is to bind v with the corresponding name in the expression e . The typematch command has two different ways of returning the bound values, which are as follows.
In command typematch(e, t), all pattern variables v_i in t are assigned the values as they are successfully matched. Thus the result of typematch(x=1..infinity, v::name=range) is true and v is assigned the name x.
In command typematch(e, t, 's') if the match is successful, a list of equations of the form vi=ri is assigned the parameter s which represents the variables and their matched values. Thus the result of typematch(x=1..infinity, v::name=range, 's') is true and s is assigned the list v=x.
Note that the arguments to the pattern binding operator :: are evaluated. Thus if the variable x may have been assigned a value, for example, in a previous typematch command, then it is necessary to use quotes. That is typematch(e,'x'::name=range).
For more information about the precedence of the pattern binding "::" operator in relation to other operators, see operators/precedence.
The typematch command is thread safe as of Maple 15, provided that s, if used, is not shared between threads.
For more information on thread safety, see index/threadsafe.
Download Help Document
What kind of issue would you like to report? (Optional)