module QSort where import System.Random (mkStdGen, randoms) import Control.Parallel (pseq) qsort :: (Ord a) => [a] -> [a] qsort (x:xs) = lesser ++ x:greater where lesser = qsort [y | y <- xs, y < x] greater = qsort [y | y <- xs, y >= x] qsort _ = [] rnd :: Int -> [Int] rnd k = let result = take k (randoms (mkStdGen 1)) in length result `pseq` result