7得票2回答
如何在make-instance期间强制检查插槽类型?

假设我有以下类声明: (defclass foo-class () ((bar :initarg :bar :type list))) 当我创建该类的一个实例时,make-instance 不会检查传递的参数是否符合插槽类型。因此,我可以通过这种方式创建“无效”的对象...

7得票3回答
将CLOS类实例用作哈希表键?

我有以下的类: (defclass category () ((cat-channel-name :accessor cat-channel-name :initarg :cat-channel-name :initform "" :type string :docu...

7得票2回答
在defgeneric中使用:method选项

我注意到,在阅读Keene的书时,defgeneric有一个:method选项,似乎允许您在通用定义本身中指定方法。我看到的大多数文档都将适用的方法定义在单独的defmethod中。通常很清晰的hyperspec将:method列为defgeneric的选项,但没有说明其含义。 :metho...

7得票5回答
Java是否支持像Lisp一样基于多个对象的类型派遣到特定的实现?

我正在学习Lisp编程,并阅读这个页面(http://landoflisp.com)。在点击“CLOS GUILD”链接后打开的页面上,倒数第二段中有如下一句话: “需要注意的是,在确定要调用给定情况下的哪个混合方法时,CLOS必须考虑传递到该方法中的两个对象。它会基于多个对象的类型来调度到...