whisper at oz.net
Fri Feb 7 05:15:46 CET 2003
> What exactly do you mean by "short circuiting conditionals"?
> I thought it just meant something like C's ternary operator.
> Algol 60 had something like that. You could say
> x = if a>=0 then sqrt(a) else sqrt(-a);
> which would take the square root of the absolute value of a.
> Short circuiting just means the non-selected branch doesn't get evaluated.
Incorrect. Short circuiting refers to a complex conditional aborting
evaluation as soon as it fails (technically, as soon as the result is
determinable), as in:
if a > b and c < d:
If a <= b then c will never be evaluated against d: that's the short
circuit. Life gets "interesting" if there is a side effect in the
unevaluated portion of the conditional:
if a > b and c < d():
d() might never get called. Not good if d() does something you depend on.
Seattle, WA USA
More information about the Python-list