Während es im allgemeinen Fall nicht viel Sinn macht, da es über Superklassen getan werden soll, möchte ich "nil" für einen bestimmten Parameter zulassen und vermeiden, eine separate Methode definieren zu müssen.Kann in CLOS-Methodendefinitionen ein Spezialist eine Liste von Klassen und nicht eine einzelne Klasse sein?
Ich versuche, etwas wie der (Pseudo-Code) zu tun
(defmethod my-method ((obj1 my-class1) (obj2 (or my-class2 null)))
method-body )
Um viel Code-Duplikation zu vermeiden, könnten Sie entweder [1] ein Makro schreiben, das eine Reihe von Methoden schreibt, oder [2] ein Label über defmethod pattern; Behalten Sie den Methodencode innerhalb einer Beschriftungsfunktion und definieren Sie dann mehrere Methoden, die auf diese Funktion zugreifen können (eine Defmethod-Sperrung). –