Re: If without else

*To*: mathgroup at smc.vnet.net*Subject*: [mg113030] Re: If without else*From*: Hugo Touchette <hugo.touchette at googlemail.com>*Date*: Tue, 12 Oct 2010 04:22:08 -0400 (EDT)*References*: <i8ukmb$odm$1@smc.vnet.net>

On Oct 11, 10:16 am, Sebastian Schmitt <sschm... at physi.uni- heidelberg.de> wrote: > Dear all! > > (I recycle my disclaimer.) > > I'm new to Mathematica with a background mostly in C++. Many times I > have the impression that my style is not natural-Mathematica > (Mathematicaesque so to say). > > I have a question to the usage of the If condition. > > In[72] := x = 2; b = 3; > > In[73] := If[b > 2, x = 10,]; x > > Out[73] = 10 > > In[74] := If[b > 3, x = 20,]; x > > Out[74] = 10 > > Is it good-practice to leave the "else" empty? Is > > x := 10 /; b > 2 > > what I'm looking for? > > Thanks in advance, > > Sebastian Dear Sebastian, The /; notation is for patterns defined with a condition, not conditional execution (in the sense of programming). For example, with x:=10/;b>2 you define a delayed replacement (x to be 10) on the condition that b>2. Here x:=10 is the pattern. If you want to execute something upon some conditions, then you really need to use 'If'. For example, Test[x_] := Module[{}, Print["Positive"] /; x > 0; Print["Even"] /; EvenQ[x]; ] doesn't do probably what you expect. What you want is Test[x_] := Module[{}, If[x > 0, Print["Positive"]]; If[EvenQ[x], Print["Even"]]; ] I hope this helps. oguh