Issue: SPECIAL-FORM-P-MISNOMERForum: Cleanup
References: SPECIAL-FORM-P (p91)
Category: CHANGE
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
Problem Description:
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.
Proposal (SPECIAL-FORM-P-MISNOMER:RENAME):
Rename the function named SPECIAL-FORM-P to SPECIAL-OPERATOR-P.
Test Case:
1. (FIND-SYMBOL "SPECIAL-FORM-P" "COMMON-LISP")
2. (FIND-SYMBOL "SPECIAL-OPERATOR-P" "COMMON-LISP")
=> SPECIAL-OPERATOR-P, :EXTERNAL
3. (SPECIAL-OPERATOR-P 'SETQ) => true
(SPECIAL-OPERATOR-P 'CAR) => NIL
Rationale:
This is makes the function consistent with the uses of the
term "form" and "operator" throughout the spec.
Current Practice:
Hopefully no one implements this yet, since it's not conforming.
Cost to Implementors:
Very small.
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.
Benefits:
Spec is incrementally easier to write.
Language is incrementally easier to teach.
Aesthetics:
A locally major improvement in aesthetics in this small corner of
the language.
Discussion:
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.