wbooze

debugger error

Oct 13th, 2020
429
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 1.34 KB | None | 0 0
  1. (defclass standard-point ()
  2.         ((x :initform 0 :initarg :x)
  3.             (y :initform 0 :initarg :y)))
  4.  
  5.  
  6. (defgeneric distance-origin (point))
  7.  
  8. (defmethod distance-origin ((point1 standard-point))
  9.         (when (and (slot-exists-p point1 'x) (slot-exists-p point1 'y))
  10.                 (sqrt (+ (expt (sb-mop:standard-instance-access point1 0) 2)
  11.                                                     (expt (sb-mop:standard-instance-access point1 1) 2)))))
  12.  
  13. (defgeneric distance (point1 &optional point2))
  14.  
  15. (defmethod distance (point1 &optional point2))
  16.  
  17. (defmethod distance ((point1 standard-point) &optional point2)
  18.         (when (and (slot-exists-p point1 'x) (slot-exists-p point1 'y))
  19.                 (sqrt (+ (expt (sb-mop:standard-instance-access point1 0) 2)
  20.                                                     (expt (sb-mop:standard-instance-access point1 1) 2)))))
  21.  
  22. (defmethod distance ((point1 standard-point) &optional (point2 standard-point))
  23.         (when (and (slot-exists-p point1 'x) (slot-exists-p point1 'y)
  24.                                                     (slot-exists-p point2 'x) (slot-exists-p point2 'y))
  25.   (sqrt (+ (expt (- (sb-mop:standard-instance-access point2 0) (sb-mop:standard-instance-access point1 0)) 2)
  26.                                             (expt (- (sb-mop:standard-instance-access point2 1) (sb-mop:standard-instance-access point1 1)) 2)))))
  27.  
  28. (defvar p1 (make-instance 'standard-point :x -3 :y 5))
  29. (defvar p2 (make-instance 'standard-point :x 7 :y -1))
  30.  
  31. (defun test ()
  32.         (distance p2 p1))
  33.  
  34. (test)
  35.  
Advertisement
Add Comment
Please, Sign In to add comment