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
|
|
|