Why foldl and foldr Are Not About Left and Right
Differences Between `Foldl` and `Foldr`

Alexis King's classic explanation clarifies that foldl and foldr both traverse lists left to right; the difference is associativity. In lazy languages, foldl builds huge thunks and should be replaced by foldl', while foldr can stream and even handle infinite lists when the reducing function is lazy in its second argument. The rule: use foldl' for strict accumulators, foldr for lazy ones, and never foldl or foldr'.
In both expressions, the elements of the list appear in the expression in the same order—from left to right—but the grouping changes.