Escriba una función que devuelva la suma acumulada de la lista. p.ej. corriendo [1,2,3,5] es [1,3,6,11]. Escribo esta función a continuación, que simplemente puede devolver la suma final de todos los valores de la lista. Entonces, ¿cómo puedo separarlos uno por uno?Cálculo de la suma acumulada de la lista en Haskell
sumlist' xx=aux xx 0
where aux [] a=a
aux (x:xs) a=aux xs (a+x)
@ sepp2k: ¿Cómo se obtiene la suma de los elementos que quedan si se comienza en el lado derecho de la lista? – Landei
@Lamdei: Lo siento, no estaba pensando bien. Sin embargo, no ser perezoso es una buena razón para no usar foldl (o su enfoque de fuerza bruta). – sepp2k
¿Por qué 'reverse'? 'sumList = (\' snd \ '[]). foldl (\\ (a, k) x -> (a + x, k. (a + x :))) (0, id) 'funciona bien en la dirección de avance. – ephemient