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.

Details

  • All pattern variables used in test must also appear in patt.
  • 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. »

Examples

open allclose all

Basic Examples  (2)

Make a definition with the condition that x should be positive:

In[1]:=
Click for copyable input
In[2]:=
Click for copyable input
Out[2]=
In[3]:=
Click for copyable input
Out[3]=

Replace all elements which satisfy the condition of being negative:

In[1]:=
Click for copyable input
Out[1]=

Scope  (2)

See Also

Except  If  Switch  Which  PatternTest  Restricted  Element  Piecewise

Tutorials

Introduced in 1988
(1.0)