6
CL-USER> (defclass a () ())
CL-USER> (defclass b (a) ())
CL-USER> (make-instance 'b)
#<STANDARD-CLASS B>

我可以在我的实例 b 上调用什么谓词函数,如果它是从 a 继承的,它会返回 T?在以下方面:

CL-USER> (instanceof 'a *)
T
4

1 回答 1

9

类名也是类型名,所以:

(typep * 'a)

请参阅集成类型和类http ://clhs.lisp.se/Body/04_cg.htm

或者你可以这样做:

(defmethod is-an-a-p ((x a))
  t)
(defmethod is-an-a-p ((x t))
  nil)
于 2013-10-03T06:21:00.977 回答