Euforia - Valutazione del cortocircuito

Quando una condizione viene testata da if, elsif, until, o while utilizzando and o oroperatori, viene utilizzata una valutazione di cortocircuito. Ad esempio:

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

Se a <0 è falso, Euphoria non si preoccupa di verificare se b è maggiore di 0. Sa che il risultato complessivo è falso a prescindere. Allo stesso modo -

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

se a <0 è vero, allora Euphoria decide immediatamente che il risultato è vero, senza testare il valore di b, poiché il risultato di questo test è irrilevante.

In generale, ogni volta che si ha una condizione del seguente modulo:

A and B

Dove A e B possono essere due espressioni qualsiasi, Euphoria prende una scorciatoia quando A è falso e rende immediatamente falso il risultato complessivo, senza nemmeno guardare l'espressione B.

Allo stesso modo, ogni volta che si ha una condizione della seguente forma:

A or  B

Dove A è vero, Euphoria salta la valutazione dell'espressione B e dichiara che il risultato è vero.

Short-circuitla valutazione di and e or avviene solo per le condizioni if, elsif, until e while. Non è utilizzato in altri contesti. Ad esempio:

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

Se qui fosse usato il cortocircuito, imposteresti x a 1 e non guarderesti nemmeno {1,2,3,4,5}, il che sarebbe sbagliato.

Pertanto, il cortocircuito può essere utilizzato nelle condizioni if, elsif, until o while, perché è necessario preoccuparsi solo se il risultato è vero o falso e le condizioni sono necessarie per produrre un atomo come risultato.