Just nu i M3-nätverket
Gå till innehåll
.M

Boelska operationer i Perl?

Rekommendera Poster

Jag roar mig lite med att bläddra bland lite perl kod och stötte på att det verkar som att man kan göra visa boelska operationer utan att använda if och else.

 

Till exempel

has(5) or change(4) and change(3);
I det här fallet så har has returnerat 0 och dö körs change(4) och change(3). Om jag ändrat or till and så körs ingenting verkar det som.

 

Så vilken ordning utförs operationerna, går det att mappa detta till hur if och else normalt körs i andra programspråk?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Är väl bara vänster till höger?

Om has(5) returnerar 0 så behöver ju inget mer köras då and kräver true på allt?

 

Samma som följande javascript:

a = function(){console.log('a');return 0;}
b = function(){console.log('b');return 1;}
c = function(){console.log('c');return 1;}
a() || b() && c()
>a
>b
>c
a() && b() && c()
>a

Eller har jag missförstått något?

 

Så t.ex

if(x) { y } else { z }

borde gå att göra såhär

x and y or z
förutsatt att y inte returnerar false, då körs även z, annars om det är ok att x körs 2 ggr:

(x and y) or (!x and z)

Redigerad av i3o6

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...