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.