Cum adunati elementele de pe o lista cu fold ?

From HaskellWiki
Revision as of 19:11, 10 June 2009 by Ha$kell (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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.