我正试图在C. Shapiro的Common Lisp: An interactive approach之后学习Common Lisp。我尝试从第18章定义bstree类型。 我的代码如下
(defun elementp (e)
(or (characterp e) (numberp e) (packagep e)))
(deftype element ()
'(satisfies elementp))
(defun bstreep (tree)
(or (typep tree element)
(and (listp tree)
(= (length tree) 3)
(typep (first tree) element))))
当我将它送入粘液时,会出现错误Undefined variable:ELEMENT
。有什么问题,如何定义bstreep
函数?
答案 0 :(得分:4)
您是否尝试在所有typep
次使用中以这种方式使用引用的表单?:
(typep tree 'element)