Just nu i M3-nätverket
Jump to content

Boelska operationer i Perl?


.M

Recommended Posts

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?

Link to comment
Share on other sites

  • 2 weeks later...

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

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...