

                                                                    to-alter

    FUNCTION
TO-ALTER ITEMS ALTER-FN &rest ARGS                               [Function]

    Package
    series

    DESCRIPTION

Given a series ITEMS, TO-ALTER returns an alterable series A containing
the same elements.  The argument ALTER-FN is a function.  The remaining
arguments are all series.  Let these series be S1, ..., SN.  If there are N
arguments after ALTER-FN, ALTER-FN must accept N+1 inputs.  If (ALTER A B)
is later encountered, (MAP-FN T ALTER-FN B S1 ... SN) is implicitly
evaluated.  For each element in B, ALTER-FN should make appropriate changes
in the data structure underlying A.

As an example, consider the following definition of a series function that
scans the elements of a list.  Alteration is performed by changing cons
cells in the list being scanned.

(DEFUN SCAN-LIST (LIST) 
  (DECLARE (OPTIMIZABLE-SERIES-FUNCTION)) 
  (LET ((SUBLISTS (SCAN-SUBLISTS LIST))) 
    (TO-ALTER (#MCAR SUBLISTS) 
              #'(LAMBDA (NEW PARENT) (SETF (CAR PARENT) NEW)) 
              SUBLISTS)))


     SEE ALSO
     about-series
     about-generators

;Copyright 1989 by the Massachusetts Institute of Technology,
;Cambridge, Massachusetts.

;Permission to use, copy, modify, and distribute this software and its
;documentation for any purpose and without fee is hereby granted,
;provided that this copyright and permission notice appear in all
;copies and supporting documentation, and that the name of M.I.T. not
;be used in advertising or publicity pertaining to distribution of the
;software without specific, written prior permission. M.I.T. makes no
;representations about the suitability of this software for any
;purpose.  It is provided "as is" without express or implied warranty.

;    M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
;    ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
;    M.I.T. BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
;    ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
;    WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
;    ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
;    SOFTWARE.



