[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fahlman: Iteration standard]



This is not really cleanup committee business.  I just thought that it
might be of interest to some of you...

Date: Thursday, 23 July 1987  21:15-EDT
 From: Scott E. Fahlman <Fahlman>
To:   loop-groop%clam at SUN.COM
cc:   fahlman
Re:   Iteration standard

OK, apparently this is the proper address for iteration discussions.
Here's what I wanted to say (probably an anticlimax at this point):

In the past, I have always been a vocal opponent of adopting the MIT
LOOP macro, or anything very close to it, as a part of the Common Lisp
standard.  I think that the basic functionality of LOOP is OK, and I've
got no real problem with its lack of a clean unifying abstraction; my
objection was that the cute, non-Lispy, pseudo-English infix/keyword
syntax was confusing and not in keeping with the rest of the language or
the direction in which Lisp should be moving.  My hope was that if we
stalled this decision for a while, someone would come up with something
better and that that "something better" would catch on in some
significant segment of the community.  (This strategy turned out to be a
good one with respect to object-oriented programming and old-style
flavors.)

Well, I've mellowed on this.  Personally, I would still rather see
something like

(loop (for i 0 100 2)
      (while (non-prime-p (foobar i))
      (collect (flowers-in-may))
      (finally (print *famous-last-words*)))

than the non-parenthesized run-on sentence equivalent, but we've been
hung up on this difference of opinion for five years and I'm ready to
throw in the towel.  Nothing else has caught on, and in the meantime
LOOP has consolidated its position and started to spread.  It IS better
than nothing.  The people who use it seem to like it.  When
pretty-printed properly it is readable enough -- I can blur my eyes and
pretend that the missing parens are there.

So, speaking only for myself, I would be willing to accept and even
support LOOP or something very similar as long as (1) it is cleanly
defined and (2) someone provides a portable, efficient public-domain
implementation.  In my view, it's time to settle this and move on.

Of course, I can't speak for the other people who still find LOOP syntax
disgusting.  Maybe some of the others are ready to compromise as well.
I was discussing this with Stan Shebs of Utah -- another former LOOPS
hater, probably because he was a fan of PSL's FOR macro -- and he was
also ready to bow to the inevitable.  Those who favor a more uniform and
principled approach to the whole iteration business -- the fans of LetS,
for example -- may be harder to please.

-- Scott