This is documentation for Mathematica 3, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.1)
 Documentation / Mathematica / Built-in Functions / Programming / Pattern Matching  /

  • patt /; test is a pattern which matches only if the evaluation of test yields True.
  • lhs :> rhs /; test represents a rule which applies only if the evaluation of test yields True.
  • lhs := rhs /; test is a definition to be used only if test yields True.
  • Example: The pattern x_ /; x > 0 represents an expression which must be positive.
  • All pattern variables used in test must also appear in patt.
  • Example: f[x_] := fp[x] /; x > 1 defines a function in the case when .
  • lhs := Module[ vars , rhs /; test ] allows local variables to be shared between test and rhs. You can use the same construction with Block and With.
  • See the Mathematica book: Section 2.3.5Section 2.5.8.
  • See also: If, Switch, Which, PatternTest.

    Further Examples

    This gives a definition for a function fac that applies only when its argument n is positive.


    Here is a polynomial that is defined differently for positive and negative argument.


    Evaluate the cell to see the graphic.