Pairs as Objects

left top right

(define (make-pair L R)
  (lambda (msg)
    (case msg
      ((LEFT) L)
      ((RIGHT) R)
      ((NEW-LEFT!) (lambda (new) (set! L new)))
      ((NEW-RIGHT!) (lambda (new) (set! R new))))))

Jim Miller W3C