( defstruct person name age ) ;;обьявили тип ( defgeneric toString ( obj )) ;; определели интерфейс ( defmethod toString (( obj person )) ;; реализовали интрефейс для типа person ( format nil "[Person: name = '~A', age = '~A']" ( person-name obj ) ( person-age obj ))) ( defparameter alice ( make-person : name "Alice" : age 12 )) ( defparameter bob ( make-person : name "Bob" : age 21 )) ( write-line ( toString alice )) ;; напечатает ;; [Person: name = 'Alice', age = '12'] ( write-line ( toString bob )) ;; напечатает ;; [Person: name = 'Bob', age = '21'] ;; сравнение ( format t "alice is equal bob: ~A~%" ( equalp alice bob )) ;; => nil ( defparameter bob2 ( make-person : name "Bob" : age 21 )) ( format t "bob is equal bob2: ~A~%" ( equalp bob bob2 )) ;; => t ;;(set...
t.me/perfect0sight