![]() ![]() | Accompanying functions for instantiation and message passing. | Lecture 3 - slide 4 : 43 Program 1 |
(define (new-instance class . parameters) (apply class parameters)) (define (send message object . args) (let ((method (method-lookup object message))) (cond ((procedure? method) (apply method args)) (else (error "Error in method lookup " method))))) (define (method-lookup object selector) (cond ((procedure? object) (object selector)) (else (error "Inappropriate object in method-lookup: " object))))