Node:Accessor, Previous:Class Precedence List, Up:Terminology
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)