Program (original) (raw)

(define (y) (let ((super (new-part x)) (self 'nil))

(let ((y-state 2) )

 (define (get-state) y-state)

 (define (set-self! object-part)
     (set! self object-part)
     (send 'set-self! super object-part))
 
 (define (self message)
     (cond ((eqv? message 'get-state) get-state)
           ((eqv? message 'set-self!) set-self!)
           (else (method-lookup super message))))
 
  self))) ; end y