在S. Keene的 COMMON LISP 中的面向对象编程一书中,她介绍了通过为某些类describe
提供:after
方法来专门化泛型函数的行为,但这会导致 SBCL 和 Clozure 中的错误:
COMMON-LISP:DESCRIBE already names an ordinary function or a
macro. [Condition of type SB-INT:SIMPLE-PROGRAM-ERROR]
当我尝试describe
为我的班级修改行为时会发生这种情况:
(defclass klasse ()
())
(defmethod describe :after ((obj klasse))
(print "Klasse!"))
由于这本书是 1989 年的,这些锁定策略是在本书发行后发生的,还是我错过了其他东西?