Me gustaría utilizar objetos CLOS de Common Lisp como claves en una tabla hash. Pensé que iba a ser tan simple como esto:Uso de objetos CLOS de Common Lisp como claves en una tabla hash?
(defclass my-class() ((a :accessor a :initarg a)))
(defun my-class= (my-instance-1 my-instance-2)
(equal (a my-instance-1) (a my-instance-2)))
(defparameter my-hash-table (make-hash-table :test #'my-class=))
Comprobación de la Lisp hyperspec Común, parece que sólo puedo utilizar eq, eql, igual, o equalp para probar la igualdad.
¿Hay alguna manera de que pueda hacer esto? ¿O se trata de algo realmente stoopid, y es por eso que el estándar no lo permite?
Genhash es, por lo menos, bastante estable (y goverened por un CDR). – Vatine