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

[CL.BOYER@UTEXAS-20.ARPA: loop & defmacro]

Received: from TL-20B.ARPA by TL-20A.ARPA with TCP; Sun 9 Dec 84 17:41:26-EST
Received: from UTEXAS-20.ARPA by TL-20B.ARPA with TCP; Sun 9 Dec 84 17:40:40-EST
Date: Sun, 9 Dec 1984  16:38 CST
To:   steele@tartan
Cc:   rpg@su-ai, hedrick@rutgers
Subject: loop & defmacro

Since RPG named you as moderator of the "iteration/loop" subgroup
I haven't seen any mail on the subject.  Has there been any?

In my opinion, LOOP is pretty good as it is and should be
adopted as part of Common Lisp.  If I had my way, I would
add to it something that was subtracted from the Interlisp
I.S.OPR when LOOP was coded, namely the ability to add more
I.S.OPRS.  For example, I now write in Zetalisp:

     (loop for x in l with ans = 0
	   do (setq ans (logor x ans))
	   finally (return ans))

where I would like to write

     (loop for x in l logor x).  

I used to be able to write something like that in Interlisp,
which has a facility for defining the initial, iterative,
and final action of a new "quantifier" such as logor.
Anyway, that's my 2-bits worth.

Finally, and totally unrelatedly, is it true that

     (defmacro foo x ...)

is not permited in Common Lisp and that
I need to write

     (defmacro foo (&whole x) ...)?

I'm trying to find some common ground with psl and the maclisp
dialects, but it doesn't look like there is a general
purpose intersection.  As I read it, a lambda list has
to be a list, and that excludes a symbolp.

P.S. Hedrick's 2060 Common Lisp permits (defmacro foo x ...).