| class-template-functions.scm - 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))))