(vgl. Abschnitt in Real World Haskell)
sort [] = []
sort (x:xs) =
let (lo,hi) = Data.List.partition (<x) xs
slo = sort lo ; shi = sort hi
in slo ++ x : shi
rekursive Aufrufe sollten gleichzeitig
ausgewertet werden:
let ... in slo `par` (shi `pseq` (slo ++ x : shi))