Origins of Common Lisp LOOP

9 views
Skip to first unread message

Paolo Amoroso

unread,
Apr 30, 2026, 8:48:16 AM (10 days ago) Apr 30
to Medley Interlisp core
On Mastodon Kent Pitman posted a scan of the 1981 specification of MACLISP's LOOP macro which started a discussion on the origins of the statement (be sure to scroll down), CLISP, and Interlisp.

--

pixel...@gmail.com

unread,
Apr 30, 2026, 8:14:02 PM (10 days ago) Apr 30
to Medley Interlisp core
Did it get deleted? I don't see it there.

Some people get bent out of shape by LOOP but really I think it's a cultural artifact in Lisp that hints at a tradition that goes beyond surface level s-expressions.
Implementing a mini DSL in Lisp using lists, symbols and delayed evaluation is exactly the kind of thing that makes Lisp a "programmable programming language".
Something that until recently went without saying.
I think that notion of using macros, creating DSLs, and writing a language for the domain you're working on is fading culturally, and I'm not thrilled about it.

The only valid critique in my opinion is the ambiguity introduced by clause based English grammars.
"Can I use multiple expressions in the same DO clause without grouping em or do I do one DO per case?" or "Am I allowed to nest IF WHEN etc conditionals?".

- Sincerely
Ryan

Paul McJones

unread,
Apr 30, 2026, 10:58:57 PM (10 days ago) Apr 30
to pixel...@gmail.com, Medley Interlisp core
I added that document (both versions) to https://softwarepreservation.computerhistory.org/LISP/maclisp_family.html#LISP_1.5/1.6/MACLISP_for_PDP-6/10_:

Glen Burke and David Moon. Loop Iteration Macro. MIT/LCS/TM-169, Laboratory for Computer Science, Massachusetts Institute of Technology.
"LOOP is a Lisp macro which provides a programmable iteration facility. The same LOOP module operates compatibly in both Lisp Machine Lisp and Maclisp (PDP-10 and Multics). LOOP was inspired by the 'FOR' facility of CLISP in InterLisp; however, it is not compatible and differs In several details."

--
You received this message because you are subscribed to the Google Groups "Medley Interlisp core" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lispcore+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/lispcore/0604e36a-50d1-4a8e-9bd7-486e281db29bn%40googlegroups.com.

Larry Masinter

unread,
May 1, 2026, 12:33:30 AM (10 days ago) May 1
to Paul McJones, pixel...@gmail.com, Medley Interlisp core
The /for/ construct was part of an add-on to LISP/360 running at Stanford.
The February 1972 printout: 
shows the basic syntax.

I was working on the DENDRAL project at Stanford in 1972, and we were porting DENDRAL to BBN Lisp.
Warren Teitelman came by to viisit (he was the lead of BBN Lisp renamed to Interlisp, and I showed it to Warren.

I should update my home page.
--


Paolo Amoroso

unread,
May 1, 2026, 4:49:27 AM (10 days ago) May 1
to Medley Interlisp core
Paul, in case you're interested Kent Pitman has been posting to his Mastodon profile scans of some other Lisp documents from his personal archive on topics such as TECO and Maclisp/Zetalisp to Common Lisp conversion.

Ryan, as far as I know the posts are public and I can still view them even when not logged into Mastodon. Do you get any errors? Can you try a different browser?



Paul McJones

unread,
May 1, 2026, 4:38:37 PM (9 days ago) May 1
to Larry Masinter, pixel...@gmail.com, Medley Interlisp core
I added a link to your printout under Stanford Lisp/360: https://softwarepreservation.computerhistory.org/LISP/other_lisp15.html#Stanford_Lisp_360_


Paul

pixel...@gmail.com

unread,
May 1, 2026, 4:41:13 PM (9 days ago) May 1
to Medley Interlisp core

PEBCAK error on my part. I can see the discussion.
Reply all
Reply to author
Forward
0 new messages