manpagez: man pages & more
info goops
Home | html | info | man
[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1.2.3 Accessor

An accessor is a generic function with both reference and setter methods.

 
(define-accessor perimeter)

Reference methods for an accessor are defined in the same way as generic function methods.

 
(define-method (perimeter (s <square>))
  (* 4 (side-length s)))

Setter methods for an accessor are defined by specifying “(setter <accessor-name>)” as the first parameter of the define-method call.

 
(define-method ((setter perimeter) (s <square>) (n <number>))
  (set! (side-length s) (/ n 4)))

Once an appropriate setter method has been defined in this way, it can be invoked using the generalized set! syntax, as in:

 
(set! (perimeter s1) 18.3)

© manpagez.com 2000-2024
Individual documents may contain additional copyright information.