Evaluation of complex conditions
Pete
pete at mollysrevenge.com
Wed Oct 5 17:20:39 EDT 2011
Thanks, that's good to know. I'm looking at using a pretty complex
condition with some of the conditions being trivial but others taking up
significant database access so sounds like I should leave the db access
conditions until last.
Hmmm, now I wonder if nested if statements make any difference to this.
Probably not.
Pete
Molly's Revenge <http://www.mollysrevenge.com>
On Wed, Oct 5, 2011 at 1:46 PM, Richard Gaskin
<ambassador at fourthworld.com>wrote:
> Pete wrote:
>
> I'm wondering how LC evaluates If statements with multiple conditions.
>> Are
>> all conditions evaluated before the overall result is checked for true or
>> false, or does evaluation proceed left to right and stop as soon as a
>> condition is found to be false? Whichever method is used, is it affected
>> by
>> some conditions being enclosed in parens?
>>
>
> IIRC from discussions with Dr. Raney many years ago, at some point he
> implemented an optimization in which the first part of any multi-condition
> expression that satisfies the expression avoids the need for evaluation of
> other conditions. This normally follows in left-to-right order, but of
> course using parens can alter the evaluation order.
>
> So in this conditional expression:
>
> if the short name of this cd is "Pete" and $user <> "pete" then
>
> If the short name of the card <> "Pete" then the engine wouldn't bother
> evaluating $user.
>
> --
> Richard Gaskin
> Fourth World
> LiveCode training and consulting: http://www.fourthworld.com
> Webzine for LiveCode developers: http://www.LiveCodeJournal.com
> LiveCode Journal blog: http://LiveCodejournal.com/**blog.irv<http://LiveCodejournal.com/blog.irv>
>
> ______________________________**_________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/**mailman/listinfo/use-livecode<http://lists.runrev.com/mailman/listinfo/use-livecode>
>
>
More information about the use-livecode
mailing list