Euphoria - Avaliação de curto-circuito
Quando uma condição é testada por if, elsif, until, ou while usando and ou oroperadores, uma avaliação de curto-circuito é usada. Por exemplo -
if a < 0 and b > 0 then
-- block of code
end if
Se a <0 for falso, então a Euphoria não se preocupa em testar se b é maior que 0. Ela sabe que o resultado geral é falso independentemente. Da mesma forma -
if a < 0 or b > 0 then
-- block of code
end if
se a <0 for verdadeiro, então Euphoria decide imediatamente que o resultado é verdadeiro, sem testar o valor de b, uma vez que o resultado desse teste é irrelevante.
Em geral, sempre que você tiver uma condição da seguinte forma -
A and B
Onde A e B podem ser quaisquer duas expressões, Euphoria pega um atalho quando A é falso e imediatamente torna o resultado geral falso, sem nem mesmo olhar para a expressão B.
Da mesma forma, sempre que você tiver uma condição da seguinte forma -
A or B
Onde A é verdadeiro, Euphoria pula a avaliação da expressão B e declara que o resultado é verdadeiro.
Short-circuita avaliação de e e ou ocorre apenas para as condições if, elsif, until e while. Não é usado em outros contextos. Por exemplo -
x = 1 or {1,2,3,4,5} -- x should be set to {1,1,1,1,1}
Se curto-circuito fosse usado aqui, você definiria x como 1, e nem mesmo olharia para {1,2,3,4,5}, o que estaria errado.
Assim, o curto-circuito pode ser usado nas condições if, elsif, until ou while, porque você só precisa se preocupar se o resultado é verdadeiro ou falso e as condições são necessárias para produzir um átomo como resultado.