blob: 096b885c5eabfcc6099891ae9871a0f3ed554bdb [file] [log] [blame]
swissChilif68671f2021-07-05 14:14:44 -07001;;;; std.lisp -- Lisp standard library
2
3(defun caar (val)
4 (car (car val)))
5
6(defun cadr (val)
7 (car (cdr val)))
8
9(defun caddr (val)
10 (car (cdr (cdr val))))
11
12(defun cadar (val)
13 (car (cdr (car val))))
14
15(defun caddar (val)
16 (car (cdr (cdr (car val)))))
17
18;; Instead of a function this is a macro for a slight performance increase
19(defmacro not (val)
20 (nilp val))
21
22;; TODO: make tail recursive (for this `flet` would be nice)
23(defun length (list)
24 (if (nilp list)
25 0
26 (+ 1 (length (cdr list)))))