MathGroup Archive 1999

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: ReplaceAll in If Statement


Tom Compton [comptont at concentric.net] wrote:

> In the following sequence I expected z to evaluate to 1 in the
> Module.  It appears that the test in the module does not
> evaluate to either True or False.  I don't understand why.
> Can anyone explain?
> 
> In[1]:=
> opList={a->True};
> 
> In[2]:=
> test[opts___]:=Module[{},
> If[a /. {opts}, z=1, z=2, z=3];
> {a, z} /. {opts}]
> 
> In[3]:=
> test[opList]
> Out[3]=
> {{True,3}}

Leave the braces out in {opts}:

In[1]:=
test2[opts___] := Module[{},
If[a /. opts, z = 1, z = 2, z = 3];
{a, z} /. opts]
In[2]:=
test2[opList]
Out[2]=
{True, 1}

Since a/.{opList} gives {True}, this is neither True or False.

Tomas Garza
Mexico City 


  • Prev by Date: Help with Multiple Integrals
  • Next by Date: Simple Import/Plot Question
  • Previous by thread: Re: ReplaceAll in If Statement
  • Next by thread: Re: ReplaceAll in If Statement