Beispiel: Quicksort mit par/pseq

(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))



Johannes Waldmann 2010-01-25