[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: "David C. Plummer in disguise" <DCP@SCRC-QUABBIN.ARPA>
- Subject: declaration pervasiveness.
- From: "Scott E. Fahlman" <Fahlman@CMU-CS-C.ARPA>
- Date: Thu, 13 Jun 1985 16:32:00 -0000
- Cc: common-lisp@SU-AI.ARPA
- In-reply-to: Msg of 13 Jun 1985 11:20-EDT from David C. Plummer in disguise <DCP at SCRC-QUABBIN.ARPA>
- Sender: FAHLMAN@CMU-CS-C.ARPA
If you follow the language defined in the book, you will find that your
function is illegal. Declarations are not permitted after FLET, LABELS,
or MACROLET. A lot of the language in the book seems to assume that
these forms don't exist.
Once you admit their existance, it is clear (to me at least) that
several things follow. First, FTYPE and [NOT]INLINE declarations should
be able to follow them and second, that these declarations should not be
This seems to me like the only sensible interpretation, even if the
language in the book is contradictory. What we have here is a very
strong analogy with variable-binding forms, and we need similar
machinery for declaring things about a particular lexical binding of a
function name. Obviously the language about declarations in the book
was written before we had really faced up to the existence of lexically
scoped function definitions.
I'm not so sure about MACROLET, however. It's not clear that FTYPE and
INLINE make any sense here.