X-Git-Url: http://git.hcoop.net/bpt/guile.git/blobdiff_plain/d88a217d3c3ff8eeb0716cf79190aaecd6afc1ef..3c452993599f65fa19d6d3f241085dec3b7b76bb:/module/language/elisp/boot.el 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))