From 25e5f85167ca270fd22aa2aee874641cd89f84f6 Mon Sep 17 00:00:00 2001 From: VaclavT Date: Fri, 26 Feb 2021 09:48:26 +0100 Subject: [PATCH] quick-sort changes --- stdlib/stdlib.lsp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/stdlib/stdlib.lsp b/stdlib/stdlib.lsp index 472fbf9..a9be27e 100644 --- a/stdlib/stdlib.lsp +++ b/stdlib/stdlib.lsp @@ -61,18 +61,23 @@ ; quicksort -(defun quick-sort (l) +(defun quick-sort-by (l cmp) (if (<= (len l) 1) l (do (define pivot (first l)) (+ - (quick-sort (filter (lambda (n) (> pivot n)) l)) + (quick-sort-by (filter (lambda (n) (cmp pivot n)) l) cmp) (list pivot) - (quick-sort (tail (filter (lambda (n) (<= pivot n)) l))) + (quick-sort-by (tail (filter (lambda (n) (not (cmp pivot n))) l)) cmp) )) )) +(defun quick-sort (l) + (quick-sort-by l (lambda (a b) (> a b)))) + + + ; from list of lists creates csv string ; (print (make-csv '(("r1c1" "r1c2") ("r2c1" "r2c2"))))