X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=lispstrack.lisp;h=b67749166d74f6ceb14c319f37ab6353578c2b3d;hb=709f6ae9830e6bd5a4ac84da06083178af6bc7a3;hp=7f7d99d50e8bf60df2731ad0fe47eaa29553b881;hpb=d3174299bd6152f0b96e5961c15921a89fd5adfd;p=jscl.git diff --git a/lispstrack.lisp b/lispstrack.lisp index 7f7d99d..b677491 100644 --- a/lispstrack.lisp +++ b/lispstrack.lisp @@ -970,6 +970,11 @@ (compile-bool (concat "(" (ls-compile key env fenv) " in " (ls-compile object env fenv) ")"))) +(define-compilation functionp (x) + (compile-bool + (concat "(typeof " (ls-compile x env fenv) " == 'function')"))) + + (defun macrop (x) (and (symbolp x) (eq (binding-type (lookup-function x *fenv*)) 'macro))) @@ -1031,6 +1036,7 @@ ((symbolp form) (symbol-name form)) ((integerp form) (integer-to-string form)) ((stringp form) (concat "\"" (escape-string form) "\"")) + ((functionp form) (concat "#")) ((listp form) (concat "(" (join (mapcar #'print-to-string form)