Copyright © tutorialspoint.com
When a condition is tested by if, elsif, until, or while using and or or operators, a short-circuit evaluation will be used. For example:
if a < 0 and b > 0 then -- block of code end if |
If a < 0 is false, then Euphoria will not bother to test if b is greater than 0. It will know that the overall result is false regardless. Similarly:
if a < 0 or b > 0 then -- block of code end if |
if a < 0 is true, then Euphoria will immediately decide that the result true, without testing the value of b, since the result of this test would be irrelevant.
Whenever we have a condition of the form:
A and B |
Where A and B can be any two expressions, Euphoria will take a short-cut when A is false and immediately make the overall result false, without even looking at expression B.
Similarly, Whenever we have a condition of the form:
A or B |
When A is true, Euphoria will skip the evaluation of expression B, and declare the result to be true.
Short-circuit evaluation of and and or takes place for if, elsif, until and while conditions only. It is not used in other contexts. For example:
x = 1 or {1,2,3,4,5} -- x should be set to {1,1,1,1,1} |
If short-circuiting were used here, we would set x to 1, and not even look at {1,2,3,4,5}, which would be wrong.
Thus, short-circuiting can be used in if/elsif/until/while conditions because we only care if the result is true or false, and conditions are required to produce an atom as a result.
Copyright © tutorialspoint.com