This Text file is old! In a 🏛️Museum, an unsorted archive of (user-)pages. (Saved from Geocities in Oct-2009. The archival story: oocities.org)
--------------------------------------- (To 🚫report any bad content: archivehelp @ gmail.com)
>

; objpat3.scm - 

(define kebab%
   (class object% () 
      (public 
         [name "kebab"]
	 [what-holder (void)]
	 [is-veggie? (void)]
	 [to-string (lambda () (string-append "new " name " ()"))])
      (sequence (super-init)) ))

(define holder%
   (class kebab% (_o) 
      (public 
         [o _o])
      (override
         [name "holder"]
	 [what-holder (lambda () o)]
	 [is-veggie? (lambda () #t)]
	 [to-string (lambda () (string-append "new " name " (" (send o to-string) ")"))])
      (sequence (super-init)) ))  

(define shallot%
   (class kebab% (_k) 
      (public 
         [k _k])
      (override
         [name "shallot"]
	 [what-holder (lambda () (send k what-holder))]
	 [is-veggie? (lambda () (send k is-veggie?))]
	 [to-string (lambda () (string-append "new " name " (" (send k to-string) ")"))])
      (sequence (super-init)) ))  

(define shrimp%
   (class kebab% (_k) 
      (public 
         [k _k])
      (override
         [name "shrimp"]
	 [what-holder (lambda () (send k what-holder))]
	 [is-veggie? (lambda () #f)]
	 [to-string (lambda () (string-append "new " name " (" (send k to-string) ")"))])
      (sequence (super-init)) ))  

(define radish%
   (class kebab% (_k) 
      (public 
         [k _k])
      (override
         [name "radish"]
	 [what-holder (lambda () (send k what-holder))]
	 [is-veggie? (lambda () (send k is-veggie?))]
	 [to-string (lambda () (string-append "new " name " (" (send k to-string) ")"))])
      (sequence (super-init)) ))  

(define rod%
   (class object% () 
      (public 
         [name "rod"]
         [to-string (lambda () (string-append "new " name " ()"))])
      (sequence (super-init)) ))

(define dagger%
   (class rod% () 
      (override
         [name "dagger"]
	 [to-string (lambda () (string-append "new " name " ()"))])
      (sequence (super-init)) ))  

(define sabre%
   (class rod% () 
      (override
         [name "sabre"]
	 [to-string (lambda () (string-append "new " name " ()"))])
      (sequence (super-init)) ))  

(define sword%
   (class rod% () 
      (override
         [name "sword"]
	 [to-string (lambda () (string-append "new " name " ()"))])
      (sequence (super-init)) ))  

(define plate%
   (class object% () 
      (public 
         [name "plate"]
         [to-string (lambda () (string-append "new " name " ()"))])
      (sequence (super-init)) ))

(define gold%
   (class plate% () 
      (override
         [name "gold"]
	 [to-string (lambda () (string-append "new " name " ()"))])
      (sequence (super-init)) ))  

(define silver%
   (class plate% () 
      (override
         [name "silver"]
	 [to-string (lambda () (string-append "new " name " ()"))])
      (sequence (super-init)) ))  

(define brass%
   (class plate% () 
      (override
         [name "brass"]
	 [to-string (lambda () (string-append "new " name " ()"))])
      (sequence (super-init)) ))  

(define copper%
   (class plate% () 
      (override
         [name "copper"]
	 [to-string (lambda () (string-append "new " name " ()"))])
      (sequence (super-init)) ))  

(define wood%
   (class plate% () 
      (override
         [name "wood"]
	 [to-string (lambda () (string-append "new " name " ()"))])
      (sequence (super-init)) ))  

(define kebab-1 
   (make-object holder%
      (make-object dagger%)))
(send kebab-1 to-string)
(send kebab-1 is-veggie?)
(send kebab-1 what-holder)

(define kebab-2 
   (make-object shallot%
      (make-object holder%
         (make-object sword%))))
(send kebab-2 to-string)
(send kebab-2 is-veggie?)
(send kebab-2 what-holder)

(define kebab-3 
   (make-object shallot%
      (make-object radish%
         (make-object holder%
            (make-object gold%)))))
(send kebab-3 to-string)
(send kebab-3 is-veggie?)
(send kebab-3 what-holder)

(define kebab-4 
   (make-object shallot%
      (make-object shrimp%
         (make-object holder%
            (make-object wood%)))))
(send kebab-4 to-string)
(send kebab-4 is-veggie?)
(send kebab-4 what-holder)

;(define kebab-1 
;  (make-object shallot% 
;    (make-object radish%
;      (make-object holder%
;        (make-object dagger%)))))



Text file Source (historic): geocities.com/soho/square/3472

geocities.com/soho/square
geocities.com/soho

(to report bad content: archivehelp @ gmail)