Cum adunati elementele de pe o lista cu fold ?

From HaskellWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

fold (+) 0 lista

Adica facem adunari incepind cu un zero (element neutru la adunare) si continuand cu elementele de pe lista.

De fapt sunt doua raspunsuri, dupa cum lista e parcursa din dreapta sau din stanga:

foldl (+) 0 lista

foldr (+) 0 lista

Mai multe detalii gasiti in bibliografia examenului de Programare functionala in lucrarea despre fold-uri citata acolo. Veti afla de acolo ca multe operatii sunt de fapt fold-uri (inclusiv ++) si cum se poate gasi functia care trebuie 'fold-ata' pe o lista pentru a rezolva problema care va intereseaza. Functia nu este totdeauna triviala dar din fericire exista algoritmi care o gasesc !!!

Nu uitati: Fold-urile sunt For-urile programarii functionale.