Re: "short circuiting" And and Or
- To: mathgroup at smc.vnet.net
- Subject: [mg70624] Re: "short circuiting" And and Or
- From: David Bailey <dave at Remove_Thisdbailey.co.uk>
- Date: Sat, 21 Oct 2006 05:14:21 -0400 (EDT)
- References: <eha5b7$b5b$1@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 > Hello, The following program illustrates that this is already the behaviour: f1[]:=(Print["f1"];False); f2[]:=(Print["f2"];False); f1[] && f2[] Notice that And has attribute HoldAll - so it can evaluate its arguments as required, and that it does not have attribute Orderless - so the arguments can't get permuted. David Bailey http://www.dbaileyconsultancy.co.uk
- Follow-Ups:
- Re: Re: "short circuiting" And and Or
- From: "Chris Chiasson" <chris@chiasson.name>
- Re: Re: "short circuiting" And and Or