diff --git a/NEWS b/NEWS index cea8c589d..2a637a56e 100644 --- a/NEWS +++ b/NEWS @@ -26,6 +26,28 @@ Command line history length is now controlled by the readline option * Changes to Scheme functions and syntax +** New module: (ice-9 setf) +Implements generalized references a la Common LISP. + +* New syntax: setf! PLACE VALUE +Puts VALUE in location specified by PLACE. setf! is more general than +set! in the sense that PLACE can be a form (GETTER EXP1 EXP2 ...). The +setf! expression will bw transformed into (SETTER EXP1 EXP2 ... VALUE) +where SETTER is a procedure or macro which has previously been +associated with GETTER. + +Example: + + (setf! (car x) 4) <=> (set-car! x 4) + +* New syntax: setter GETTER +The name of the SETTER of GETTER. The way to associate a SETTER with +a GETTER is: (setf! (setter GETTER) SETTER) + +Example: + + (setf! (setter car) set-car!) + ** The range of logand, logior, logxor, logtest, and logbit? have changed. These functions now operate on numbers in the range of a C unsigned diff --git a/ice-9/ChangeLog b/ice-9/ChangeLog index a78d89f7b..99de8f788 100644 --- a/ice-9/ChangeLog +++ b/ice-9/ChangeLog @@ -1,3 +1,12 @@ +1998-12-07 Mikael Djurfeldt + + * Makefile.am: Added setf.scm. + +1998-12-05 Christian Lynbech + + * setf.scm: New file. Adds the new forms `setf!' and `setter' + which implements generalized references a la Common LISP. + 1998-12-02 Mikael Djurfeldt * boot-9.scm (process-define-module): Added new specifier