Fix a bug in qsort
Try `qsort [3,3]`. Under the old code, you'd get `[3,3,3]` out.
commit1275b9e8cce5ebf6156176aa6ca1f04e0fb1dad1
authorJeff Hemphill <jhemphill@fb.com>
dateFri 18 Jul 2014, 00:58 (12 years ago)
parentdbc0539
test/totality003/totality003.idr+1−1
@@ -3,5 +3,5 @@ module smaller
33total
44qsort : Ord a => List a -> List a
55qsort [] = []
6−qsort (x :: xs) = qsort (assert_smaller (x :: xs) (filter (<= x) xs)) ++
6+qsort (x :: xs) = qsort (assert_smaller (x :: xs) (filter (< x) xs)) ++
77 (x :: qsort (assert_smaller (x :: xs) (filter (>= x) xs)))
test/totality003/totality003a.idr+1−1
@@ -3,5 +3,5 @@ module smaller
33total
44qsort : Ord a => List a -> List a
55qsort [] = []
6−qsort (x :: xs) = qsort (assert_smaller (x :: xs) (filter (<= x) xs)) ++
6+qsort (x :: xs) = qsort (assert_smaller (x :: xs) (filter (< x) xs)) ++
77 (x :: qsort (filter (>= x) xs))