stdlib additions
This commit is contained in:
parent
eaa66664d8
commit
c10d1aef34
|
|
@ -175,3 +175,76 @@
|
|||
|
||||
rows_str
|
||||
))
|
||||
|
||||
|
||||
; looks into lst's elements and when there is a list with first item with name, it returns the _second_ element of that list
|
||||
(defun find-val-in-list (lst name)
|
||||
(do
|
||||
(define found_val nil)
|
||||
(define i 0)
|
||||
|
||||
(define list_len (len lst))
|
||||
(while (and (>= i 0) (< i list_len))
|
||||
(define e (index lst i))
|
||||
(set! i (inc i))
|
||||
(if (= (type e) "list")
|
||||
(if (= (type (first e)) "list")
|
||||
(do (set! found_val (find-val-in-list (first e) name))
|
||||
(if (!= found_val nil) (set! i -1))
|
||||
)
|
||||
; else
|
||||
(do
|
||||
(if (= name (first e))
|
||||
(do
|
||||
(set! found_val (second e)) (set! i -1)
|
||||
)
|
||||
; else
|
||||
(if (= (type (second e)) "list")
|
||||
(do (set! found_val (find-val-in-list (second e) name))
|
||||
(if (!= found_val nil)
|
||||
(set! i -1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
; else
|
||||
(if (= name e)
|
||||
(do (set! found_val (index lst (inc i))) (set! i -1))
|
||||
)
|
||||
)
|
||||
found_val
|
||||
))
|
||||
|
||||
|
||||
(defun min (l)
|
||||
(if (or (not l) (= (len l) 0))
|
||||
nil
|
||||
(do
|
||||
(define minn (index l 0))
|
||||
(define i 1)
|
||||
(while (< i (len l))
|
||||
(if (< (index l i) minn)
|
||||
(set! minn (index l i)))
|
||||
(set! i (inc i))
|
||||
)
|
||||
minn
|
||||
)
|
||||
))
|
||||
|
||||
(defun max (l)
|
||||
(if (or (not l) (= (len l) 0))
|
||||
nil
|
||||
(do
|
||||
(define maxx (index l 0))
|
||||
(define i 1)
|
||||
(while (< i (len l))
|
||||
(if (> (index l i) maxx)
|
||||
(set! maxx (index l i)))
|
||||
(set! i (inc i))
|
||||
)
|
||||
maxx
|
||||
)
|
||||
))
|
||||
|
|
@ -24,6 +24,7 @@
|
|||
(define b 30)
|
||||
|
||||
(define json_list (parse-json "{\"k1\":\"v1\", \"k2\":42, \"k3\":[\"a\",123,true,false,null]}"))
|
||||
(define fvil_list '(("a" ("av" "avv")) ("b" "bv") (31 32 33) (41 42 43)))
|
||||
|
||||
|
||||
(thread-create (tcp-server 7778 (lambda (str) (list #t (+ "(print \"" (string-upcase str) "\")")))))
|
||||
|
|
@ -133,33 +134,23 @@
|
|||
(ut::define-test "result of (start-of-year)" '(ut::assert-equal 1609459200 (start-of-year (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S"))))
|
||||
(ut::define-test "result of (end-of-year)" '(ut::assert-equal 1640995199 (end-of-year (str-to-date "2021-05-13 10:32:12" "%Y-%m-%d %H:%M:%S"))))
|
||||
|
||||
(ut::define-test "(read-file-lines \"/tmp/f.txt\" counter)" '(ut::assert-equal 3 (read-file-lines "/tmp/f.txt" counter)))
|
||||
(ut::define-test "result of (read-file-lines \"/tmp/f.txt\" counter)" '(ut::assert-equal 3 (read-file-lines "/tmp/f.txt" counter)))
|
||||
|
||||
(ut::define-test "result of create table" '(ut::assert-equal ((0 "table created" 0)) (usql "create table a (i integer not null, s varchar(64), f float null, d date null, b boolean)")))
|
||||
|
||||
(ut::define-test "result tcp-client" '(ut::assert-equal "(print \"ABCD\")" (tcp-client "127.0.0.1" 7778 "abcd")))
|
||||
|
||||
(ut::define-test "result t(find-val-in-list \"a\")" '(ut::assert-equal '("av" "avv") (find-val-in-list fvil_list "a")))
|
||||
(ut::define-test "result t(find-val-in-list \"b\")" '(ut::assert-equal "bv" (find-val-in-list fvil_list "b")))
|
||||
(ut::define-test "result t(find-val-in-list 31)" '(ut::assert-equal 32 (find-val-in-list fvil_list 31)))
|
||||
|
||||
(ut::define-test "result of (max (10 9 8 7 6 5 4 3 2 1))" '(ut::assert-equal 10 (max '(10 9 8 7 6 5 4 3 2 1))))
|
||||
(ut::define-test "result of (max ())" '(ut::assert-equal nil (max '())))
|
||||
(ut::define-test "result of (min (10 9 8 7 6 5 4 3 2 1))" '(ut::assert-equal 1 (min '(10 9 8 7 6 5 4 3 2 1))))
|
||||
(ut::define-test "result of (min ())" '(ut::assert-equal nil (min '())))
|
||||
|
||||
|
||||
;(ut::define-test "result of " '(ut::assert-true )
|
||||
(ut::run-tests)
|
||||
|
||||
(threads-join)
|
||||
|
||||
;; (include "/usr/local/var/mlisp/terminal.lsp")
|
||||
|
||||
;; (print (term-red "red text"))
|
||||
;; (print (term-green "green text"))
|
||||
;; (print (term-yellow "yellow text"))
|
||||
;; (print (term-blue "blue text"))
|
||||
;; (print (term-magenta "magenta text"))
|
||||
;; (print (term-cyan "cyan text"))
|
||||
;; (print (term-white "white text"))
|
||||
;; (print (term-bold "bold text"))
|
||||
;; (print (term-underline "underline text"))
|
||||
;; (print "normal text")
|
||||
|
||||
;; (print (+ (term-red (sprintf "%.2f" (list 1.11))) " "
|
||||
;; (term-green (sprintf "%.2f" (list 1.11))) " "
|
||||
;; (term-blue (sprintf "%.2f" (list 1.11))) " "
|
||||
;; (term-yellow (sprintf "%.2f" (list 1.11))) " "
|
||||
;; ))
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue