Newsgroups: comp.lang.lisp,comp.lang.misc
Path: cantaloupe.srv.cs.cmu.edu!bb3.andrew.cmu.edu!newsfeed.pitt.edu!gatech!newsfeed.internetmci.com!in1.uu.net!newsie.dmc.com!hermes.control.com!not-for-mail
From: dan@control.com (Dan L. Pierson)
Subject: Re: CLtL2 series functions: why so obscure?
Message-ID: <30f3e519.21419328@news>
Date: Wed, 10 Jan 1996 16:27:11 GMT
Organization: Control Technology Corporation
Reply-To: dan@control.com
References: <1996Jan7.035820.7902@ptolemy-ethernet.arc.nasa.gov>
X-Newsreader: Forte Agent .99c/16.141
Lines: 46
Xref: glinda.oz.cs.cmu.edu comp.lang.lisp:20433 comp.lang.misc:24260

k p c <kpc@ptolemy.arc.nasa.gov> wrote:

> _Common Lisp, the Language_ by Steele has an appendix in which series
> functions are described.
> 
> ...
> 
> Why are they obscure?  I can guess at reasons having to do with
> tradition or perhaps implementation or perhaps design, but maybe
> somebody very familiar with series can write a plausible story.

Series are the result of a long term effort by Dick Waters on how to
provide a high level representation of series operations that could be
efficiently compiled to iteration.  In other words, they don't look
like looping, but that's what the compiler generates.

There was a strong minority effort in X3J13 to make Series part of the
standard (as well as, or instead of Loop).  We lost, but Guy decided
to put them in his book anyway.  I still believe that they provide a
much clearer way to express many iterative constructs.

Here's a Lisp FAQ entry for the current Series stuff.  The papers
explain the very specific constraints on Series imposed by the
requirement for efficient compilation.

Waters' Programs:

   Dick Waters' XP Lisp Pretty Printer is available by anonymous ftp
   from 
      merl.com:/pub/xp/
   as the files xp-code.lisp, xp-doc.txt, and xp-test.lisp.

   The Series Macro is available from
      merl.com:/pub/series/
   as the files s-code.lisp, s-test.lisp, and s-doc.txt. The
   Series macro package is described fully in Waters, R.C., "Automatic
   Transformation of Series Expressions into Loops", ACM Transactions 
   on Programming Languages and Systems, 13(1):52--98, January 1991,
   MIT/AIM-1082 and MIT/AIM-1083.

   Both programs are also available from the Common Lisp Repository
   described above.

   For further information, contact Dick Waters, <dick@merl.com> or
   <dick@ai.mit.edu>. An improved version of Series is in the works.


