![]() ![]() | colorpoint-class-all.scm - Class Point - A subclass of object - with a new method point-info. | Lecture 3 - slide 7 : 43 Program 1 |
(define (point x y) (let ((super (new-part object)) (self 'nil)) (let ((x x) (y y) ) (define (getx) x) (define (gety) y) (define (add p) (point (+ x (send 'getx p)) (+ y (send 'gety p)))) (define (type-of) 'point) (define (point-info) (list (send 'getx self) (send 'gety self) (send 'type-of self))) (define (dispatch message) (cond ((eqv? message 'getx) getx) ((eqv? message 'gety) gety) ((eqv? message 'add) add) ((eqv? message 'point-info) point-info) ((eqv? message 'type-of) type-of) (else (method-lookup super message)))) (set! self dispatch) ) self))