Euforia - Evaluasi Sirkuit Pendek

Saat suatu kondisi diuji oleh if, elsif, until, atau while menggunakan and atau oroperator, evaluasi sirkuit pendek digunakan. Misalnya -

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

Jika a <0 salah, maka Euforia tidak perlu repot-repot menguji apakah b lebih besar dari 0. Ia tahu bahwa hasil keseluruhan salah. Demikian pula -

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

jika a <0 benar, maka Euforia segera memutuskan bahwa hasilnya benar, tanpa menguji nilai b, karena hasil pengujian ini tidak relevan.

Secara umum, setiap kali Anda memiliki kondisi formulir berikut -

A and B

Di mana A dan B dapat berupa dua ekspresi, Euforia mengambil jalan pintas ketika A salah dan segera membuat hasil keseluruhan menjadi salah, bahkan tanpa melihat ekspresi B.

Demikian pula, setiap kali Anda memiliki kondisi dalam bentuk berikut -

A or  B

Jika A benar, Euforia melewatkan evaluasi ekspresi B, dan menyatakan hasilnya sebagai benar.

Short-circuitevaluasi dan dan atau berlangsung untuk kondisi if, elsif, sampai, dan sementara saja. Ini tidak digunakan dalam konteks lain. Misalnya -

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

Jika korsleting digunakan di sini, Anda akan menyetel x ke 1, dan bahkan tidak melihat {1,2,3,4,5}, yang mana itu salah.

Jadi, korsleting dapat digunakan dalam kondisi if, elsif, hingga, atau while, karena Anda hanya perlu berhati-hati jika hasilnya benar atau salah, dan kondisi diperlukan untuk menghasilkan atom sebagai hasilnya.