From b50e9ba128359b53cc52add4bd3da8454fad04e3 Mon Sep 17 00:00:00 2001 From: VaclavT Date: Tue, 8 Jun 2021 23:27:46 +0200 Subject: [PATCH] quick-sort-reverse added --- doc/Doc.md | 1 + stdlib/stdlib.lsp | 3 +++ tests/test.lsp | 3 ++- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/doc/Doc.md b/doc/Doc.md index 9f18fb5..3435220 100644 --- a/doc/Doc.md +++ b/doc/Doc.md @@ -114,6 +114,7 @@ |`(flatten list)`||`>>> (flatten '(1 (2 2) 3)) => (1 2 2 3)`| |`(quick-sort-by list cmp)`||| |`(quick-sort list)`|return sorted list|`>>> (quick-sort '(2 4 6 1 7 3 3 9 5)) => (1 2 3 3 4 5 6 7 9)`| +|`(quick-sort-reverse list)`|return reverse sorted list|`>>> (quick-sort-reverse '(2 4 6 1 7 3 3 9 5)) => (9 7 6 5 4 3 3 2 1)`| |`(not c)`|Logical NOT of c|`>>> (not 1) => nil`| |`(neg n)`|Negates number|`>>> (neg -5) => 5`| |`(is-pos? n)`|Returns true if n is positive number|| diff --git a/stdlib/stdlib.lsp b/stdlib/stdlib.lsp index 3447dfb..778d7ad 100644 --- a/stdlib/stdlib.lsp +++ b/stdlib/stdlib.lsp @@ -134,6 +134,9 @@ (defun quick-sort (l) (quick-sort-by l (lambda (a b) (> a b)))) +(defun quick-sort-reverse (l) + (quick-sort-by l (lambda (a b) (> b a)))) + (defun start-of-day (datetime) (str-to-date (+ (date-to-str datetime "%Y-%m-%d") " " "00:00:00") "%Y-%m-%d %H:%M:%S")) (defun end-of-day (datetime) (str-to-date (+ (date-to-str datetime "%Y-%m-%d") " " "23:59:59") "%Y-%m-%d %H:%M:%S")) diff --git a/tests/test.lsp b/tests/test.lsp index 921584f..7eb40ab 100644 --- a/tests/test.lsp +++ b/tests/test.lsp @@ -47,7 +47,8 @@ (ut::define-test "result of (len json_list)" '(ut::assert-equal 3 (len json_list))) (ut::define-test "result of (quick-sort (10 9 8 7 6 5 4 3 2 1))" '(ut::assert-equal '(1 2 3 4 5 6 7 8 9 10) (quick-sort '(10 9 8 7 6 5 4 3 2 1)))) -(ut::define-test "result of (quick-sort (10 9 8 7 6 5 4 3 2 10)" '(ut::assert-equal '(1 2 3 4 5 6 7 8 9 10) (quick-sort '(1 2 3 4 5 6 7 8 9 10)))) +(ut::define-test "result of (quick-sort (10 9 8 7 6 5 4 3 2 1))" '(ut::assert-equal '(1 2 3 4 5 6 7 8 9 10) (quick-sort '(1 2 3 4 5 6 7 8 9 10)))) +(ut::define-test "result of (quick-sort-reverse (1 2 3 4 5 6 7 8 9 10))" '(ut::assert-equal '(10 9 8 7 6 5 4 3 2 1) (quick-sort-reverse '(1 2 3 4 5 6 7 8 9 10)))) (ut::define-test "result of (quick-sort-by (10 9 8 7 6 5 4 3 2 1) (lambda (a b) (> a b)))" '(ut::assert-equal '(1 2 3 4 5 6 7 8 9 10) (quick-sort-by '(10 9 8 7 6 5 4 3 2 1) (lambda (a b) (> a b))))) (ut::define-test "result of (quick-sort-by (1 2 3 4 5 6 7 8 9 10) (lambda (a b) (> a b)))" '(ut::assert-equal '(1 2 3 4 5 6 7 8 9 10) (quick-sort-by '(1 2 3 4 5 6 7 8 9 10) (lambda (a b) (> a b))))) (ut::define-test "result of (quick-sort-by (1 2 3 4 5 6 7 8 9 10) (lambda (a b) (< a b)))" '(ut::assert-equal '(10 9 8 7 6 5 4 3 2 1) (quick-sort-by '(1 2 3 4 5 6 7 8 9 10) (lambda (a b) (< a b)))))