parent
c67501e523
commit
6441356358
|
|
@ -1,25 +1,15 @@
|
||||||
; quicksort
|
|
||||||
(defun quick-sort (l)
|
|
||||||
(if (<= (len l) 1)
|
|
||||||
l
|
|
||||||
(do
|
|
||||||
(define pivot (first l))
|
|
||||||
(+
|
|
||||||
(quick-sort (filter (lambda (n) (> pivot n)) l))
|
|
||||||
(list pivot)
|
|
||||||
(quick-sort (tail (filter (lambda (n) (<= pivot n)) l)))
|
|
||||||
))
|
|
||||||
))
|
|
||||||
|
|
||||||
; decrement a number
|
|
||||||
(defun dec (n) (- n 1))
|
|
||||||
|
|
||||||
; increment a number
|
|
||||||
(defun inc (n) (+ n 1))
|
|
||||||
|
|
||||||
; not a bool
|
; not a bool
|
||||||
(defun not (x) (if x 0 1))
|
(defun not (x) (if x 0 1))
|
||||||
|
|
||||||
|
; logical and
|
||||||
|
(defun and (a b) (if a (if b 1 0) 0))
|
||||||
|
|
||||||
|
; logical or
|
||||||
|
(defun or (a b) (if a 1 (if b 1 0)))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; negate a number
|
; negate a number
|
||||||
(defun neg (n) (- 0 n))
|
(defun neg (n) (- 0 n))
|
||||||
|
|
||||||
|
|
@ -29,6 +19,14 @@
|
||||||
; is a number negative?
|
; is a number negative?
|
||||||
(defun is-neg? (n) (< n 0))
|
(defun is-neg? (n) (< n 0))
|
||||||
|
|
||||||
|
; decrement a number
|
||||||
|
(defun dec (n) (- n 1))
|
||||||
|
|
||||||
|
; increment a number
|
||||||
|
(defun inc (n) (+ n 1))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; return second element of list
|
; return second element of list
|
||||||
(defun second (l) (index l 1))
|
(defun second (l) (index l 1))
|
||||||
|
|
||||||
|
|
@ -41,6 +39,39 @@
|
||||||
; return fifth element of list
|
; return fifth element of list
|
||||||
(defun fifth (l) (index l 4))
|
(defun fifth (l) (index l 4))
|
||||||
|
|
||||||
|
; return 1 when list contains item otherwise 0
|
||||||
|
(defun member (lst itm)
|
||||||
|
(do
|
||||||
|
; TODO check if is empty list
|
||||||
|
(define found_index -1)
|
||||||
|
(define i 0)
|
||||||
|
(define lst_len (len lst))
|
||||||
|
|
||||||
|
(while (and (< i lst_len) (= found_index -1))
|
||||||
|
(if (= itm (index lst i))
|
||||||
|
(define found_index i)
|
||||||
|
(define i (+ i 1))
|
||||||
|
))
|
||||||
|
|
||||||
|
; TODO when nil will be implemented itm / nil
|
||||||
|
(if (!= -1 found_index)
|
||||||
|
1
|
||||||
|
0)
|
||||||
|
))
|
||||||
|
|
||||||
|
|
||||||
|
; quicksort
|
||||||
|
(defun quick-sort (l)
|
||||||
|
(if (<= (len l) 1)
|
||||||
|
l
|
||||||
|
(do
|
||||||
|
(define pivot (first l))
|
||||||
|
(+
|
||||||
|
(quick-sort (filter (lambda (n) (> pivot n)) l))
|
||||||
|
(list pivot)
|
||||||
|
(quick-sort (tail (filter (lambda (n) (<= pivot n)) l)))
|
||||||
|
))
|
||||||
|
))
|
||||||
|
|
||||||
|
|
||||||
; from list of lists creates csv string
|
; from list of lists creates csv string
|
||||||
|
|
@ -64,6 +95,3 @@
|
||||||
|
|
||||||
rows_str
|
rows_str
|
||||||
))
|
))
|
||||||
|
|
||||||
|
|
||||||
(defun setq (var val) (define var val))
|
|
||||||
Loading…
Reference in New Issue