Next: , Previous: SRFI-16, Up: SRFI Support


6.4.14 SRFI-17 - Generalized set!

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.