stdlib changes

This commit is contained in:
VaclavT 2021-04-12 22:43:21 +02:00
parent 7f01dfe2f0
commit 288b75c1ad
1 changed files with 18 additions and 11 deletions

View File

@ -1,19 +1,11 @@
; not a bool
(defun not (x) (if x 0 1))
; negate a number
(defun neg (n) (- 0 n))
; is a number positive?
(defun is-pos? (n) (> n 0))
; is a number negative?
(defun is-neg? (n) (< n 0))
; decrement a number
(defun neg (n) (- 0 n))
(defun dec (n) (- n 1))
; increment a number
(defun inc (n) (+ n 1))
@ -34,6 +26,20 @@
(defun string-downcase (str)
(string-case str "lower"))
(defun string-join (lst sep)
(do
(define rslt "")
(define i 0)
(for e lst
(if (= i 0)
(define rslt (display e))
(define rslt (+ rslt (display sep) (display e))))
(define i (inc i)))
rslt
))
; pause for interval of seconds
(defun sleep (time)
(system-cmd (+ "sleep " (string time))))
@ -46,7 +52,7 @@
(defun third (l) (index l 2))
(defun fourth (l) (index l 3))
(defun fifth (l) (index l 4))
(defun nth (i l) (index l (- i 1))
(defun nth (i l) (index l (- i 1)))
; return 1 when list contains item otherwise 0
(defun member (lst itm)
@ -81,6 +87,8 @@
(defun make-list (size)
(make-list-of size nil))
(defun empty-list? (lst) (and (= (type lst) "list") (= (len lst) 0)))
(defun uniq (lst)
(do
(define rslt '())
@ -106,7 +114,6 @@
(define rslt (push rslt ee))))
(define rslt (push rslt e))
))
rslt
))