fork download
  1. (defclass лошадиные () ())
  2. (defclass конь (лошадиные) ())
  3. (defclass пегас (лошадиные) ())
  4.  
  5. (defmethod род ((животина лошадиные))
  6. (class-name (class-of животина)))
  7.  
  8. (defmethod заржи ((животина лошадиные))
  9. (format t "~&~@(~a~): И-ГО-ГО!" (род животина)))
  10.  
  11. (defmethod взлетай ((животина пегас))
  12. (format t "~&~@(~a~): Поехали нахуй!" (род животина)))
  13.  
  14. (defmethod насри ((животина лошадиные))
  15. (format t "~&*~(~a~) кекает*" (род животина)))
  16.  
  17. (defun зацени (лошадина)
  18. (format t "~&Гля, какой у меня ~(~a~)" (род лошадина))
  19. (заржи лошадина))
  20.  
  21. (loop :for род :in '(конь пегас)
  22. :for приказ :in '(насри взлетай)
  23. :for животина := (make-instance род)
  24. :do (funcall приказ животина)
  25. :do (зацени животина))
Success #stdin #stdout 0.01s 27676KB
stdin
Standard input is empty
stdout
*конь кекает*
Гля, какой у меня конь
Конь: И-ГО-ГО!
Пегас: Поехали нахуй!
Гля, какой у меня пегас
Пегас: И-ГО-ГО!