fork(1) download
  1. (defclass object () ())
  2. (defclass ship (object) ())
  3. (defclass asteroid (object) ())
  4.  
  5. (defgeneric collide (a b))
  6.  
  7. (defmethod collide ((s ship) (o object))
  8. (format t "Ship hits something: ~a" o))
  9.  
  10. (defmethod collide ((o object) (a asteroid))
  11. (format t "Something ~a hits asteroid" o))
  12.  
  13. (defmethod collide ((a object) (b object))
  14. (format t "Something ~a hits something ~a" a b))
  15.  
  16. (collide (make-instance 'ship) (make-instance 'asteroid))
Success #stdin #stdout 0.02s 28516KB
stdin
Standard input is empty
stdout
Ship hits something: #<ASTEROID {1001E57663}>