References: SPECIAL-FORM-P (p91)
Edit history: 05-Oct-90, Version 1 by Pitman (internal Symbolics draft)
05-Oct-90, Version 2 by Pitman (mostly add endorsements)
Status: For Internal Discussion
The thing for which SPECIAL-FORM-P returns true is not a form.
This complicates the terminology used in the specification and
is a nuisance to those trying to teach the language.
Rename the function named SPECIAL-FORM-P to SPECIAL-OPERATOR-P.
1. (FIND-SYMBOL "SPECIAL-FORM-P" "COMMON-LISP")
=> NIL, NIL
2. (FIND-SYMBOL "SPECIAL-OPERATOR-P" "COMMON-LISP")
=> SPECIAL-OPERATOR-P, :EXTERNAL
3. (SPECIAL-OPERATOR-P 'SETQ) => true
(SPECIAL-OPERATOR-P 'CAR) => NIL
This is makes the function consistent with the uses of the
term "form" and "operator" throughout the spec.
Hopefully no one implements this yet, since it's not conforming.
Cost to Implementors:
Cost to Users:
Small. Most code doesn't do meta-linguistic things that require the use
of SPECIAL-FORM-P. Code that does use it can probably be fixed by
simple textual replacement.
Cost of Non-Adoption:
It's nearly impossible to explain the term SPECIAL-FORM-P gracefully
in the specification.
Spec is incrementally easier to write.
Language is incrementally easier to teach.
A locally major improvement in aesthetics in this small corner of
Allan Wechsler, who has taught Lisp at Symbolics for several years,
strongly supports this proposal. He says the existing name has
been a source of confusion for students.
Pitman strongly supports the proposal.
Moon said "I wouldn't expect it to be controversial." Pitman couldn't
figure out if that was an endorsement.