(defmethod cart-x ((p polar))
(* (radius p) (cos (angle p))))
(defmethod cart-y ((p polar))
(* (radius p) (sin (angle p))))
(cart-x p) => 7.0710678
(cart-y p) => 7.0710678
(defgeneric to-cart (arg)
(:documentation "Преобразование аргумента в декартову систему.")
(:method ((c cart))
c)
(:method ((p polar))
(make-instance 'cart
:x (cart-x p)
:y (cart-y p))) )