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)
>

; objpat1.scm - mzscheme objects example (based on code in "A Little Java, A Few Patterns")

(define point%
   (class object% () 
      (public 
         [distance-to-origin (void)]
         [closer-to-origin (void)]
         [name "point"])
      (sequence (super-init)) ))

(define cartesian-point%
   (class point% (_x _y) 
      (public
         [x _x]
         [y _y]
         [to-string 
          (lambda () 
            (string-append "new " name " (" (number->string x) "," (number->string y) ")"))]
         )
      (override 
         [name "cartesian-point"]
         [distance-to-origin (lambda () (sqrt (+ (expt x 2) (expt y 2))))]
         [closer-to-origin 
          (lambda (point) 
            (<= (distance-to-origin) (send point distance-to-origin) ))])
      (sequence (super-init))    
))

(define cartesian-point-1 (make-object cartesian-point% 2 3))
(define cartesian-point-2 (make-object cartesian-point% 1 1))
(define cartesian-point-3 (make-object cartesian-point% 3 3))
(send cartesian-point-1 to-string)
(send cartesian-point-1 distance-to-origin)
(send cartesian-point-1 closer-to-origin cartesian-point-2) 
(send cartesian-point-1 closer-to-origin cartesian-point-3) 

(define manhattan-point%
   (class point% (_x _y) 
      (public
         [x _x]
         [y _y]
         [to-string 
          (lambda () 
            (string-append "new " name " (" (number->string x) "," (number->string y) ")"))]
         )
      (override 
         [name "manhattan-point"]
         [distance-to-origin (lambda () (+ x y))]
         [closer-to-origin 
          (lambda (point) 
            (<= (distance-to-origin) (send point distance-to-origin) ))])  
      (sequence (super-init))    
))

(define manhattan-point-1 (make-object manhattan-point% 2 3))
(define manhattan-point-2 (make-object manhattan-point% 1 1))
(define manhattan-point-3 (make-object manhattan-point% 3 3))
(send manhattan-point-1 to-string)
(send manhattan-point-1 distance-to-origin)
(send manhattan-point-1 closer-to-origin manhattan-point-2) 
(send manhattan-point-1 closer-to-origin manhattan-point-3) 

 

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

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

(to report bad content: archivehelp @ gmail)