diff options
-rw-r--r-- | module/language/elisp/boot.el | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/module/language/elisp/boot.el b/module/language/elisp/boot.el index fae86a2bd..0d1690527 100644 --- a/module/language/elisp/boot.el +++ b/module/language/elisp/boot.el @@ -71,15 +71,23 @@ (%funcall (@ (language elisp runtime) eval-elisp) form))) (eval-and-compile - (defun null (object) + (defsubst null (object) + (declare (lexical object)) (if object nil t)) - (defun consp (object) - (%funcall (@ (guile) pair?) object)) + (defsubst consp (x) + (declare (lexical x)) + (%funcall (@ (guile) pair?) x)) + (defsubst atom (x) + (declare (lexical x)) + (null (consp x))) (defun listp (object) + (declare (lexical object)) (if object (consp object) t)) - (defun car (list) + (defsubst car (list) + (declare (lexical list)) (if list (%funcall (@ (guile) car) list) nil)) - (defun cdr (list) + (defsubst cdr (list) + (declare (lexical list)) (if list (%funcall (@ (guile) cdr) list) nil)) (defun make-symbol (name) (%funcall (@ (guile) make-symbol) name)) |