

                                                       series-element-type


    Type SPECIFIER
SERIES-ELEMENT-TYPE                                        [Type specifier]

    Package
    series

    DESCRIPTION

The type specifier (SERIES-ELEMENT-TYPE VARIABLE) denotes the type of
elements in the series held in VARIABLE.  VARIABLE must be a variable
carrying a series value (for example, a series argument of a series
function).  SERIES-ELEMENT-TYPE can only be used in three places: in a
declaration in a LET, MAPPING, PRODUCING, or other binding form in a series
expression; in a declaration in a DEFUN being used to define a series
function; or in a type argument to a series function.  As an example,
consider that COLLECT-LAST could have been defined as follows.  The use of
SERIES-ELEMENT-TYPE ensures that the internal variable keeping track of the
most recent item has the correct type.

(DEFUN COLLECT-LAST (ITEMS &OPTIONAL (DEFAULT NIL)) 
  (DECLARE (OPTIMIZABLE-SERIES-FUNCTION)) 
  (COLLECT-FN '(SERIES-ELEMENT-TYPE ITEMS) 
              #'(LAMBDA () DEFAULT) 
              #'(LAMBDA (OLD NEW) NEW) 
              ITEMS))


     SEE ALSO
     about-series
     about-generators
     about-series-optimization

;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.



