Cum adunati elementele de pe o lista cu fold ?
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.