Euforia - Evaluación de cortocircuito
Cuando una condición es probada por if, elsif, untilo while utilizando and o oroperadores, se utiliza una evaluación de cortocircuito. Por ejemplo
if a < 0 and b > 0 then
-- block of code
end if
Si a <0 es falso, entonces Euphoria no se molesta en probar si b es mayor que 0. Sabe que el resultado general es falso independientemente. Similarmente -
if a < 0 or b > 0 then
-- block of code
end if
si a <0 es verdadero, entonces Euphoria decide inmediatamente que el resultado es verdadero, sin probar el valor de b, ya que el resultado de esta prueba es irrelevante.
En general, siempre que tenga una condición de la siguiente forma:
A and B
Donde A y B pueden ser dos expresiones cualesquiera, Euphoria toma un atajo cuando A es falso e inmediatamente hace que el resultado general sea falso, sin siquiera mirar la expresión B.
Del mismo modo, siempre que tenga una condición de la siguiente forma:
A or B
Donde A es verdadero, Euphoria omite la evaluación de la expresión B y declara que el resultado es verdadero.
Short-circuitla evaluación de yyo se lleva a cabo solo para las condiciones if, elsif, hasta y while. No se usa en otros contextos. Por ejemplo
x = 1 or {1,2,3,4,5} -- x should be set to {1,1,1,1,1}
Si se usara un cortocircuito aquí, establecería x en 1, y ni siquiera miraría {1,2,3,4,5}, lo cual sería incorrecto.
Por lo tanto, el cortocircuito se puede usar en condiciones if, elsif, until o while, porque solo debe preocuparse si el resultado es verdadero o falso, y se requieren condiciones para producir un átomo como resultado.