MathGroup Archive 1999

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

Search the Archive

Re: ReplaceAll in If Statement

  • To: mathgroup at smc.vnet.net
  • Subject: [mg19506] Re: ReplaceAll in If Statement
  • From: "David Bailey" <dave-bailey at freeuk.com>
  • Date: Sat, 28 Aug 1999 15:53:24 -0400
  • References: <7q20sl$q9i@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Tom Compton wrote in message <7q20sl$q9i at smc.vnet.net>...
>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}}

To see what had happened I ran test[opList]//TracePrint. If you do this you
will see that you were in effect calling
 test[{a->True}]

However your code is set up to work with
test[a->True]

As a result you end up testing If[{True}, ..... which is indeed neither true
nor false!

David Bailey
Salford Software




  • Prev by Date: Sqrt problems
  • Next by Date: Re: how long is a long evaluation?
  • Previous by thread: Re: ReplaceAll in If Statement
  • Next by thread: Re: ReplaceAll in If Statement