From: k p c
Subject: CLtL2 series functions: why so obscure?
Date: 
Message-ID: <1996Jan7.035820.7902@ptolemy-ethernet.arc.nasa.gov>
_Common Lisp, the Language_ by Steele has an appendix in which series
functions are described.

I have never seen series as a built in part of any programming
language.  (Streams, sequences, loops, recursion, branches, mapping,
reduction, closures, and lazy evaluation, but not the combination.)  I
have not seen implementations in languages other than CL.

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.

Clearly effort went into them.  They lead to terse code.  Are they
being used a lot but just in obscure circles?

IMHO series are not orthogonal with CL streams and sequences.
Nomenclature is different.  Has anybody implemented a set of functions
that operate on the the three S's orthogonally?  (I am leaving loops
out of it for now.)

The FAQ says this is flame bait, but I have seen no flames on
iterators in ages.  The ANSI standard is probably more stable than it
was when that part of the FAQ was written.

If you post a followup to this article, I would appreciate a courtesy
verbatim copy by email to help work around potentially unreliable feeds.

---
···@ptolemy.arc.nasa.gov.  AI, multidisciplinary neuroethology, info filtering.
Prescriptions are no more moral than ration slips for food, vitamins, or shoes.

From: k p c
Subject: Re: CLtL2 series functions: why so obscure?
Date: 
Message-ID: <1996Jan9.224657.12640@ptolemy-ethernet.arc.nasa.gov>
Evidently series are so obscure that I got no replies :-).

I won't pursue using them.  The impression I get is that few use them.

If you post a followup to this article, I would appreciate a courtesy
verbatim copy by email to help work around potentially unreliable feeds.

---
···@ptolemy.arc.nasa.gov.  AI, multidisciplinary neuroethology, info filtering.
Censorship does not stop being censorship just because we call it another name,
because it is generally accepted, because it gets rid of articles we generally
tend to agree are nothing but trash, or because the censor has good intentions.
From: Daniel Finster
Subject: Re: CLtL2 series functions: why so obscure?
Date: 
Message-ID: <DL1spu.9so@SDF.LONESTAR.ORG>
    From: k p c  <···@ptolemy.arc.nasa.gov>
    
    I won't pursue using them.  The impression I get is that few use them.

Don't let that stop you.  If it is a winning feature (I don't know
myself, having not studied them very well), you should go ahead and
use it to its best advantage, regardless of who else is using it.

And if more people start doing this, then it'll get wider usage among
the Lisp populace in general, which would be a BIGWIN.
From: Dan L. Pierson
Subject: Re: CLtL2 series functions: why so obscure?
Date: 
Message-ID: <30f3e519.21419328@news>
k p c <···@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, <····@merl.com> or
   <····@ai.mit.edu>. An improved version of Series is in the works.
From: Cyber Surfer
Subject: Re: CLtL2 series functions: why so obscure?
Date: 
Message-ID: <821469105snz@wildcard.demon.co.uk>
In article <·················@news> ···@control.com "Dan L. Pierson" writes:

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

I've been grateful that he put them in anyway, as I wouldn't have
discovered the Series functions until a few years ago, otherwise.
 
> 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.

I have the source code, but I'm having some difficulty getting it to
work with Allegro Common Lisp for Windows 3.0 (web version). Sadly,
I currently don't have the time to pursue the problem.

That doesn't alter the fact that Appendix A is my favourite part of
CLtL2. ;-)
-- 
<URL:http://www.demon.co.uk/community/index.html>
<URL:http://www.enrapture.com/cybes/namaste.html>
Po-Yeh-Pao-Lo-Mi | "You can never browse enough."
From: Raymond Toy
Subject: Re: CLtL2 series functions: why so obscure?
Date: 
Message-ID: <4nividbkd5.fsf@rcur7.rtp.ericsson.se>
    Daniel> Don't let that stop you.  If it is a winning feature (I don't know
    Daniel> myself, having not studied them very well), you should go ahead and
    Daniel> use it to its best advantage, regardless of who else is using it.

Are there any small and not-so-small examples of series?  I'd be
interested.  Cltl, being a reference manual, is a bit terse about
using series.

Ray

-- 
----> Raymond Toy
----> Ericsson Inc.