Euphoria - Évaluation des courts-circuits

Lorsqu'une condition est testée par if, elsif, until, ou while en utilisant and ou oropérateurs, une évaluation de court-circuit est utilisée. Par exemple -

if a < 0 and b > 0 then
   -- block of code
end if

Si a <0 est faux, alors Euphoria ne prend pas la peine de tester si b est supérieur à 0. Il sait que le résultat global est faux malgré tout. De même -

if a < 0 or b > 0 then
   -- block of code
end if

si a <0 est vrai, alors Euphoria décide immédiatement que le résultat est vrai, sans tester la valeur de b, puisque le résultat de ce test n'est pas pertinent.

En général, chaque fois que vous avez une condition de la forme suivante -

A and B

Où A et B peuvent être deux expressions quelconques, Euphoria prend un raccourci lorsque A est faux et rend immédiatement le résultat global faux, sans même regarder l'expression B.

De même, chaque fois que vous avez une condition de la forme suivante -

A or  B

Lorsque A est vrai, Euphoria ignore l'évaluation de l'expression B et déclare que le résultat est vrai.

Short-circuitl'évaluation de et et ou a lieu uniquement pour les conditions if, elsif, until et while. Il n'est pas utilisé dans d'autres contextes. Par exemple -

x = 1 or {1,2,3,4,5} -- x should be set to {1,1,1,1,1}

Si un court-circuit était utilisé ici, vous définiriez x à 1, et ne regarderiez même pas {1,2,3,4,5}, ce qui serait faux.

Ainsi, le court-circuit peut être utilisé dans les conditions if, elsif, until ou while, car vous ne devez vous soucier que si le résultat est vrai ou faux et que des conditions sont nécessaires pour produire un atome en conséquence.