[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
GLS would like to push again for hairiferous DO
- To: GLS at MIT-MC, (BUG LISP) at MIT-MC, (BUG LISPM) at MIT-MC
- Subject: GLS would like to push again for hairiferous DO
- From: MOON at MIT-MC (David A. Moon)
- Date: Tue, 15 Apr 80 09:19:00 GMT
- Cc: EJS at MIT-MC, JONL at MIT-MC, H at MIT-MC, KMP at MIT-MC
- Cc: HENRY at MIT-MC
- Original-date: 15 APR 1980 0419-EST
I don't think that it is at all syntactically clear what this
yet-further-extended form of DO does. At some point you reach
diminishing returns with doing all your syntax with parentheses, and
must either punt or resort to keywords. I think even people who "would
never ever use" LOOP would agree that LOOP is a greatly preferable way
of saying the same things than your DO with 3 open parentheses. If you
aren't familiar with LOOP, ask GSB for a copy of the documentation.
As far as this much too protracted discussion of named constructs goes,
my considered opinion is that the correct way of documenting it is as a
lexically-scoped catch. It has the usual small efficiency and modularity
advantages of lexical scoping over dynamic scoping. (The fact that the
cost of dynamic CATCH is very much larger in pdp10 Maclisp is purely
a historical artifact of the implementation and is not conceptually
necessary; it -is- conceptually necessary that it be a little more
expensive, as it is in the Lisp machine.)
It was probably a mistake to have more than one way (named PROG and
DO-NAMED) of saying it. I'm not sure that I would go so far as to take
one of them out, although probably that would be best in the long run.
I don't think it's necessary or useful to have function names for every
possible combination of primitive operators.