OK My two cents (as of my present state of non? Enlightenment, and please
correct me if I'm wrong):
I think I see that, for an ***Intrinsic*** Function, the Standard can
specify whether or not, and if so in which order, the arguments are
evaluated, before or after the function begins execution. Implementers
probably don't have a problem with such argument evaluation rules,
especially in simple cases, cuz they're gonna INLINE it anyway.
So I would vote (if I had a vote) for the functional form of "ANDTHEN" and
"ORELSE" (by whatever function names).
As this discussion has shown, the operator form opens up A LOT of questions
of precedence etc that are solved by the functional form - because if there
are two such functions, the execution sequence is obvious from the way the
functions are nested (or not).
With the operator form, on the other hand, this discussion has shown that
the precedence is NOT obvious even to J3 "experts" - some arbitrary judgment
would have to be made, and no matter which rule is adopted a lot of users
for the next gazillion years will keep getting confused.
= Loren P Meissner
|