let rec qsort = function | [] -> [] | h::t -> qsort (List.filter ((>=) h) t) @ [h] @ qsort (List.filter ((<) h) t) let r = new System.Random() [] let main() = let sample = List.init 300 (fun _-> r.Next(System.Int32.MaxValue)) System.Console.WriteLine(qsort sample)