Por qué foldl y foldr no son lo que crees: la diferencia está en la asociatividad
Differences Between `Foldl` and `Foldr`

Alexis King desmonta el mito de que foldl y foldr recorren la lista en direcciones opuestas: ambos lo hacen de izquierda a derecha, pero foldl asocia a la izquierda y foldr a la derecha. En lenguajes estrictos, foldl puede ser recursivo de cola y consumir espacio constante, mientras que foldr necesita apilar llamadas. En Haskell, foldl perezoso acumula thunks y degrada el rendimiento; foldl' lo evita. foldr, en cambio, puede operar sobre listas infinitas si la función es perezosa en su segundo argumento.
foldr puede operar sobre listas infinitas, mientras que foldl no.