I found this line in the hyperspec regarding the :initform slot option
in defclass:
----
No implementation is permitted to extend the syntax of defclass to
allow (slot-name form) as an abbreviation for (slot-name :initform
form).
----
A slot form like (slot-name form) is already non conforming due to how
defclass is defined, why did it need to be repeated? If an
implementation were to allow such a form it's obviously decided to be
non conforming and so i don't see what an extra "do not do this" in
the spec is going to accomplish.
I'm just curious because i'm thinking about making heavy use of a
defclass macro which will allow exactly this form and i'd like to know
the reason the writers of the spec decided to be so explict in
forbidding it.
--
-Marco
Ring the bells that still can ring.
Forget your perfect offering.
There is a crack in everything.
That's how the light gets in.
-Leonard Cohen
Marco Baringer <ยทยท@bese.it> writes:
> If an implementation were to allow such a form it's obviously
> decided to be non conforming and so i don't see what an extra
> "do not do this" in the spec is going to accomplish.
An implementation with extensions can still be conforming.
In section 1.6:
"An implementation can have extensions, provided they do not
alter the behavior of conforming code and provided they are not
explicitly prohibited by this standard."
Allowing (slot-name form) would not alter the behavior of
conforming code, so it would be a valid extension if it had not
been explicitly prohibited.