This is documentation for Mathematica 3, which was
based on an earlier version of the Wolfram Language.
 Condition 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.5, Section 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. In[1]:= Here is a polynomial that is defined differently for positive and negative argument. In[2]:= Evaluate the cell to see the graphic. In[3]:=