, CLOS. , CLOS , , , . . , , , ( - ).
, :
(defmethod m1 ((obj1 C1.0) (obj2 C1.0)) ...)
(defmethod m1 ((obj1 C2.1) (obj2 C1.0)) ...)
(defmethod m1 ((obj1 C2.2) (obj2 C3.0)) ...)
(defmethod m1 ((obj1 C3.0) (obj2 C3.0)) ...)
, , , . CLOS call-next-method. ( :before, :after :around, ).
() , +, progn and? + .
, :
(defmethod m1 + ((obj1 C1.0) (obj2 C1.0)) 1)
(defmethod m1 + ((obj1 C2.1) (obj2 C1.0)) 2)
(defmethod m1 + ((obj1 C2.2) (obj2 C3.0)) 10)
(defmethod m1 + ((obj1 C3.0) (obj2 C3.0)) 20)
, , . CLOS (: CLOS).
CLOS: , . , . .
, " " CLOS, - CLOS , , CLOS , CLOS . CLOS , . CLOS , , .