Re: with-slots usage question

"Robert P. Goldman" <[email protected]> Tue, 11 Nov 2003 10:40:02 -0600
Newsgroups gmane.lisp.clump
Message-ID <[email protected]>
>>>>> "Jan" == Jan Rychter <[email protected]> writes:

>>>>> "Mario" == Mario Mommer <[email protected]>:
    Mario> "Robert P. Goldman" <[email protected]> writes:
    >>> I still remember what happened when I invested heavily in using
    >>> SERIES!  :-(

    Mario> Could you elaborate? I was thinking on using SERIES for a
    Mario> project (well, among other things to learn them). What went
    Mario> wrong?

    Jan> I'm very interested, too, as I've been using SERIES for a while now (for
    Jan> simple things, though).

    Jan> I can say what I learned in the process:

    Jan>   -- SERIES isn't obvious. It isn't just a nice functional
    Jan>      abstraction,
    Jan>      it's an optimization technique as well (or mostly). This
    Jan>      means that if you don't use it properly, it will bite
    Jan>      you. I didn't expect that, especially since the
    Jan>      documentation was hinting that if you don't get
    Jan>      everything right, you'll just get slower code, not
    Jan>      incorrect code. That most certainly hasn't been true in
    Jan>      my experience.

    Jan>   -- If you want to use SERIES, get the original AIM-1082 tech report
    Jan>      from MIT (available as PDF). It is different from everything else
    Jan>      I've seen in one important detail: the off-line ports in function
    Jan>      parameters are underlined. Makes for a world of difference.

    Jan>   -- I could really do with good examples on how to properly use the
    Jan>      code. What's worse, few people use SERIES, which means it isn't
    Jan>      always easy to get help when you're stuck.

Furthermore, when people want to read your code, they can't.
Sometimes I can't read my own code (SERIES is somewhat APLische that
way).

    Jan> Overall, while I still don't fully know SERIES, I find it an
    Jan> extremely nice and useful tool. I think it gets too little
    Jan> recognition because of the issues above.

At the end of the day, I found SERIES more functionally elegant and
cool than the LOOP macro.  But I use the LOOP macro and I don't use
SERIES.  The reasons you adduce above pretty much say why.  Plus it's
the job of your compiler to make sure that LOOP works; it's YOUR job
to make sure that SERIES works.  I'm mostly trying to write pretty
large Lisp systems, rather than enhancing CL environments or making a
compiler work, so YMMV.

r