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

Boelska operationer i Perl?


.M

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?

Länk till kommentar
Dela på andra webbplatser

  • 2 veckor senare...

Ä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)

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...