PatternFunctions1(R, D)

pattern.spad line 374 [edit on github]

Tools for patterns.

addBadValue: (Pattern R, D) -> Pattern R

addBadValue(p, v) adds v to the list of “bad values” for p; p is not allowed to match any of its “bad values”.

badValues: Pattern R -> List D

badValues(p) returns the list of “bad values” for p; p is not allowed to match any of its “bad values”.

predicate: Pattern R -> D -> Boolean

predicate(p) returns the predicate attached to p, the constant function true if p has no predicates attached to it.

satisfy?: (D, Pattern R) -> Boolean

satisfy?(v, p) returns f(v) where f is the predicate attached to p.

satisfy?: (List D, Pattern R) -> Boolean

satisfy?([v1, ..., vn], p) returns f(v1, ..., vn) where f is the top-level predicate attached to p.

suchThat: (Pattern R, D -> Boolean) -> Pattern R

suchThat(p, f) makes a copy of p and adds the predicate f to the copy, which is returned.

suchThat: (Pattern R, List Symbol, List D -> Boolean) -> Pattern R

suchThat(p, [a1, ..., an], f) returns a copy of p with the top-level predicate set to f(a1, ..., an).

suchThat: (Pattern R, List(D -> Boolean)) -> Pattern R

suchThat(p, [f1, ..., fn]) makes a copy of p and adds the predicate f1 and … and fn to the copy, which is returned.