Evaluation of complex conditions

Ken Ray kray at sonsothunder.com
Thu Oct 6 13:14:13 EDT 2011


On Oct 6, 2011, at 11:40 AM, Pete wrote:

> Thanks Alex, makes total sense with the examples you provided.
> 
> The only remaining question in my mind is if the use of parens changes
> anything - a post yesterday suggested that putting a condition in parens
> causes it to be evaluated ahead of the other conditions but I can't make
> that happen in your example.  I suspect confusion between precedence and
> evaluation again.

There are certain times where parens are necessary (I just wish I could remember specifically where and when). It *is* a good practice to put expressions in parens for readability, especially when it comes to working with objects. Compare:

if the name of button 1 contains "test" and the name of button 2 contains "test" then

if (the name of button 1 contains "test") and (the name of button 2 contains "test") then

The second is definitely more readable. Personally, I put parens around most/all expressions since that is the way it is with most other languages. For example, we *can* do this:

if 2 + 3 = 5 then
  answer "Right"
else
  answer "Wrong"
end if

but if you try that the equivalent in JavaScript:

if 2 + 3 == 5 {
  alert("Right");
} else {
  alert("Wrong");
}

you won't get an alert dialog. You have to put the expression in parens to make it work:

if (2 + 3 == 5) {
  alert("Right");
} else {
  alert("Wrong");
}

So my suggestion is to parenthesize everything for both readability and developing a cross-compatible coding style, even if it doesn't affect (for LiveCode) how the engine parses the expression.


Ken Ray
Sons of Thunder Software, Inc.
Email: kray at sonsothunder.com
Web Site: http://www.sonsothunder.com/	




More information about the use-livecode mailing list