Napisz funkcję, która zwraca bieżącą sumę list. na przykład działa [1,2,3,5] to [1,3,6,11]. Piszę tę funkcję poniżej, po prostu mogę zwrócić ostatnią sumę wszystkich wartości z listy. Jak mogę je rozdzielić jeden po drugim?Suma obliczeniowa sumy w Haskell
sumlist' xx=aux xx 0
where aux [] a=a
aux (x:xs) a=aux xs (a+x)
@ sepp2k: Jak uzyskać sumę elementów w lewo, jeśli zaczynasz od prawej strony listy? – Landei
@Lamdei: Przepraszam, nie myślałem dobrze. Jednak nie jest leniwy jest nadal dobrym powodem, aby nie używać foldl (lub podejście brute force). – sepp2k
Dlaczego "odwrócić"? 'sumList = (\' snd \ '[]). foldl (\\ (a, k) x -> (a + x, k. (a + x :))) (0, id) 'działa dobrze w kierunku do przodu. – ephemient