Re: "short circuiting" And and Or
- To: mathgroup at smc.vnet.net
- Subject: [mg70600] Re: [mg70582] "short circuiting" And and Or
- From: Carl Woll <carlw at wolfram.com>
- Date: Sat, 21 Oct 2006 05:13:33 -0400 (EDT)
- References: <200610200921.FAA11062@smc.vnet.net>
Szabolcs Horvat wrote:
>I'd like to write a function that tests whether there are any elements
>in a list that violate a certain condition. I could simply use
>And@@condition/@list, but for reasons of efficiency I'd like to stop
>the testing as soon as a "False" value is found. Is there any elegant
>way of doing this without writing an explicit While loop?
>
>Szabolcs Horvát
>
Here is one idea:
ReleaseHold[
And @@ (Hold[Positive[#]]& /@ {1,1,-1,1,-1,1})
]
False
Here is one way to check that testing is stopped as soon as a False
value is found:
ReleaseHold[
And @@ (Hold[Print[#];Positive[#]]& /@ {1,1,-1,1,-1,-1,1})
]
1
1
-1
False
Carl Woll
Wolfram Research
- References:
- "short circuiting" And and Or
- From: "Szabolcs Horvat" <szhorvat@gmail.com>
- "short circuiting" And and Or