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