(define make-book
(lambda(atitle anauthor)
(define title atitle)
(define author anauthor)
(define owner anauthor)
(define holder anauthor)
(define base-object (make-base-object))
;
(define get-title
(lambda()
title))
;
(define get-author
(lambda()
author))
;
(define get-owner
(lambda()
owner))
;
(define get-holder
(lambda()
holder))
;
(define change-owner
(lambda(new-owner)
(define owner new-owner)))
;
(define change-holder
(lambda(new-holder)
(define holder new-holder)))
;
(define display
(lambda()
(print "book:")
(print title)
(print "by:")
((author 'who-are-you))
(print "owner:")
((owner 'who-are-you))
(print "holder:")
((holder 'who-are-you))
(print "end-of-book")))
;
(define self
(lambda(msg)
(if (equal msg 'get-title)
get-title
(if (equal msg 'get-author)
get-author
(if (equal msg 'get-owner)
get-owner
(if (equal msg 'get-holder)
get-holder
(if (equal msg 'change-owner)
change-owner
(if (equal msg 'change-holder)
change-holder
(if (equal msg 'display)
display
(base-object msg))))))))))
self))
|
Georg P. Loczewski 2004-03-05