# What are the properties of the unsided fold?

Foldl and folr are 2 very important functions for FP and Haskell, but I have never heard much about the unsided fold:

fold f [a,b,c,d] = (f (f a b) (f c d))


That is, a fold that operates on binary associative functions (so the order of application doesn't matter). If I recall correctly, this is very common in databases as it can be parallelized. So, about it, I ask:

1. Is it, like foldr, universal?
2. Like foldr, can you define every important function using it?
3. Is there a fusion rule for it, similar to those for foldr/build and unfoldr/destroy?
4. Why is it barely mentioned?
5. Any consideration worth mentioning?
• Nearly cross-posted: stackoverflow.com/questions/20986286/… – frafl Jan 9 '14 at 23:10
• Not really, I'm expecting different answers from those different contexts (SO = how to implement foldl with fold, here = general properties of the unsided fold). – Viclib Jan 10 '14 at 4:01
• Perhaps you want to cross-post it at cstheory (unless you already have). – Yuval Filmus Jan 23 '14 at 1:21