[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
THROW, and MAP
- To: JonL.pa@PARC-MAXC
- Subject: THROW, and MAP
- From: David A. Moon <Moon%SCRC-TENEX@MIT-MC>
- Date: Tue, 27 Sep 1983 23:50:00 -0000
- Cc: Common-Lisp@SU-AI
- In-reply-to: The message of 27 Sep 83 18:51-EDT from JonL.pa at PARC-MAXC
Date: Tue, 27 Sep 83 15:51 PDT
Excelsior edition's commentary on THROW doesn't make clear whether the
evaluation of the 'result' form is to take place before or after the
tag-search. If before, then the syntax of THROW is merely that of
'function'. If after, then that must be spelled out, so that side-effects
in the 'result' computation won't occur when there is a tag-search
The syntax (you mean semantics?) of THROW is not the same as of functions,
since it sees all the values resulting from evaluating its second subform.
I vote for the subforms both being evaluated before the search for a matching
tag commences, since it seems simpler for both user-understanding and
LOOP in its current definition (p93) seems to preclude the nice
MacLisp/LispM LOOP macro.
In the excelsior edition LOOP was fixed to not preclude that macro.
(It used to be defined in such a way that the hairy LOOP macro was not
a consistent extension of Common Lisp's simple builtin one.)
But the hair LOOP macro is not included in the white pages.
This is partly my fault since years ago I promised to come up with
a second generation of LOOP that would fix a lot of the problems people
have complained about. In fact I did most of the design and circulated
it to a number of people, but the thing has been on the back burner for
a long time due to other responsibilities. It probably wouldn't be hard
to make the existing LOOP run in Common Lisp as a yellow pages package,
although I for one would much rather have the nicer new one. The
motivation for finishing this project (either by me or by someone else,
I don't care) will probably become a lot higher in a half year or so as
we start to see some "real live" Common Lisp implementations with actual
I agree that it is quite impractical to try to do without some form of complex
iteration generator, whether it be the Interlisp one, the Maclisp one, or my
pie in the sky new one. Dick Water's LetS package should definitely be
made to run in Common Lisp as well.