5
CL-USER> (defclass a()())
CL-USER> (defclass b (a)())
CL-USER> (make-instance 'b)
#<STANDARD-CLASS B>
什麼謂語函數可以調用我的實例b,返回T如果它是從一個?在靜脈:等效於CLOS的instanceof?如何檢查實例是否從另一個對象繼承?
CL-USER> (instanceof 'a *)
T
CL-USER> (defclass a()())
CL-USER> (defclass b (a)())
CL-USER> (make-instance 'b)
#<STANDARD-CLASS B>
什麼謂語函數可以調用我的實例b,返回T如果它是從一個?在靜脈:等效於CLOS的instanceof?如何檢查實例是否從另一個對象繼承?
CL-USER> (instanceof 'a *)
T
類名稱也被輸入名稱,所以:
(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)