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

Pure functions, när är dom "rena"?


.M

Rekommendera Poster

En "pure function" måste alltid returnera samma resultat när den tar emot samma värden. Den får inte variera sig baserat på state någon annan stans i programmet. Etc etc.

 

Jag har några funktioner som visserligen alltid returnerar samma resultat när man skickar in samma värde, men funktionen anropar andra funktioner i programmet. Men dessa följer samma regler, dvs dom returnerar alltid samma resultat när man skickar in samma värde och läser eller skriver inget till någon variabel eller liknande som inte skickas in som argument till funktionen.

 

Så är mitt program därför skrivet med pure functions? Eller måste en pure function vara skriven så den i sin tur inte anropar någon annan funktion i programmet?

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon

Nejdå, en pure function får anropa hur många nästlade funktioner som helst, så länge dessa också är rena. Däremot är det ju svårare att garantera renheten ju fler nästlade anrop som finns, det räcker ju att en annan utvecklare ovetandes (eller du själv av misstag) skriver om en enda av dessa funktioner på ett sätt att dess purity försvinner.

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...