[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
What are special forms?
- To: common-lisp@SU-AI.ARPA
- Subject: What are special forms?
- From: "Scott E. Fahlman" <Fahlman@C.CS.CMU.EDU>
- Date: Thu, 19 Jun 1986 03:29:00 -0000
- In-reply-to: Msg of Tue 17 Jun 86 19:27:09+0900 from nttlab!kurims!yuasa at kurims.kurims.kyoto-u.junet
- Sender: FAHLMAN@C.CS.CMU.EDU
In response to: nttlab!kurims!yuasa at kurims.kurims.kyoto-u.junet
This issue was discussed on Common Lisp some time ago, perhaps before
the network connections to Japan were working.
We had all fallen into the habit of using the term "special form" to
refer to both the entire form and the symbol (such as SETQ) that names
the form. Someone pointed out that this was sloppy and potentially
confusing. He proposed that we refer to the symbol as a "special
operator", reserving the name "special form" for the entire list.
This seemed like a good clarification to all of us, but there was some
disagreement about whether the potential for confusion was great enough
to justify changing the name SPECIAL-FORM-P to SPECIAL-OPERATOR-P.
This was never resolved. It is on my list of things that we need to
So what my message meant to say was that (Compiled-Function-P 'setq) =>
Incidentally, I would like to ask you what "globally" means in
the following sentence in the CLtL description of SPECIAL-FORM-P in
If the symbol globally names a special form, ....
I beleive that the word "globally" is superfluous in this sentence. At
one time it was contemplated that forms like FLET might locally redefine
symbols that are special-forms (menaing special operators) at top level.
I believe that the manual now says explicitly that it is illegal to
redefine special forms, though I can't find that pasage right now.