Am Samstag, 15. Januar 2005 21:38 schrieb Bruno Wolff III: > On Sat, Jan 15, 2005 at 10:44:48 -0500, > > Greg Stark <[EMAIL PROTECTED]> wrote: > > What I miss most in both C and Java is the lispish ability to write > > expressions like: > > > > foo = bar() || baz() || qux(); > > Are you sure that C doesn't guarenty short circuit evaluation? > I don't have my C reference handy, but my memory is that evaluation > will stop after the first function call that returns true in the > above expression. > C do guaranty short circuit evaluation.
You can also write: (foo = bar()) || (foo = baz()) || (foo = qux()) this is a valid shortcut, where bar(), baz() and qux() are not evaluated twice, like in the if-cascade. But it is a ugly style every stylechecker should have no problems complaining about. Even a compiler would warn about '=' and '=='-confusion. But you can fix it: (foo = bar()) != NULL || (foo = baz()) != NULL || foo = qux()) != NULL; It's short, but not quite that readable. Tommi ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly