Re: How to tell Mathematica to stop conditional testing in an If statment if one condition is niether True or False? McCarthy evaluation rules? 'and then' test?
- To: mathgroup at smc.vnet.net
- Subject: [mg69556] Re: How to tell Mathematica to stop conditional testing in an If statment if one condition is niether True or False? McCarthy evaluation rules? 'and then' test?
- From: "Jens-Peer Kuska" <kuska at informatik.uni-leipzig.de>
- Date: Fri, 15 Sep 2006 06:45:58 -0400 (EDT)
- Organization: Uni Leipzig
- References: <eebfu3$5dt$1@smc.vnet.net>
Hi, you mean: xc = Table[i, {i, 1, 3}] x = 5; If[TrueQ[x == b] && xc[[10]] == 4, Print["True"], Print["False"], Print["Can't decide"]] ?? because And[] will automatical stop evaluation it's arguments when the result is sure. Regards Jens "Nasser Abbasi" <nma at 12000.org> schrieb im Newsbeitrag news:eebfu3$5dt$1 at smc.vnet.net... |I can better describe this with simple example: | | ------------- code ------------ | | Remove["Global`*"]; | xc = Table[i, {i, 1, 3}] | x = 5; | If[x == b && xc[[10]] == 4, Print["True"], Print["False"], Print["Can't | decide"]] | | ----- end code ------------- | In the above, 'x==b' is neither True nor False, since 'b' has no numerical | value. | | But what I want is when this happens, for Mathematica to NOT continue with | the testing if xc[[10]]==4 is True (because even if it is True, it will | not change the outcome, which is can't decide. | | I am looking for something like 'and then' which says to test the next | condition only if the one just tested was true. | | The interesting thing is that if 'b' had a value, say 7, which makes the | first test (the x==b) to be False, then Mathematica does the right thing, | and will not try to check the xc[[10]]==4 condition. I need it to do the | same thing when also the result of the check is 'undecided', not just | 'False' or 'True'. | | Is there a way to do this? Notice in the example above, I get the error | that xc[[10]] is out of bound, but still get the can't decide message. | | It is clear to me that the way Mathematica does it now is not the right way. | I do not see why it tries to check for xc[[10]]==4 when it will not make a | difference to the final result. | | any thoughts? | | thanks, | Nasser | | |