Next: SRFI-19, Previous: SRFI-16, Up: SRFI Support
This is an implementation of SRFI-17: Generalized set!
It exports the Guile procedure make-procedure-with-setter under
the SRFI name getter-with-setter and exports the standard
procedures car, cdr, ..., cdddr,
string-ref and vector-ref as procedures with setters, as
required by the SRFI.
SRFI-17 was heavily criticized during its discussion period but it was
finalized anyway. One issue was its concept of globally associating
setter properties with (procedure) values, which is non-Schemy.
For this reason, this implementation chooses not to provide a way to set
the setter of a procedure. In fact, (set! (setter proc)
setter) signals an error. The only way to attach a setter to a
procedure is to create a new object (a procedure with setter) via
the getter-with-setter procedure. This procedure is also
specified in the SRFI. Using it avoids the described problems.