[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
type specifiers
Date: 1 June 1987, 11:24:47 EDT
From: Timothy Daly <DALY@ibm.com>
CLtL states that
(SIMPLE-VECTOR *) is an abbreviation for (VECTOR T *)
except that the elements are of type simple vector (p47)
[This doesn't relate to your question, but...]
A serious bit of miswording, that. It should have said
"except that it additionally specifies that OBJECTS OF THE
TYPE are @I(simple) arrays." I don't have a current list
of corrections to the manual; is this on it already?
CLtL states that
If a type specifier is a list, the car of the list is a symbol
and the rest of the list is subsidiary type information. ... (p42)
[I'm not sure how this part relates to your question.]
CLtL state that
As a convenience, if a list has one or more unspecified items
at the end, such items may simply be dropped rather than writing
an explicit * for each one. (p43)
Is (SIMPLE-VECTOR T) valid? (semantics: (SIMPLE-VECTOR T *))
No. I don't know why you thought it might, so I'm not sure this is
the most helpful answer, but I think p47 is pretty clear that SIMPLE-VECTOR
takes only a single argument, a size. I.e. (SIMPLE-VECTOR 47) =
(SIMPLE-ARRAY T 47).
However, I think this is really also a bug in the manual, and that it is
SUPPOSED to take two arguments, like you apparently thought, and it was
accidentally edited to take arguments like SIMPLE-STRING instead of
SIMPLE-ARRAY. Unfortunately, we've been using the manual to specify the
language, and at this point I think this would have to be regarded as
an incompatible change. (I still think we should fix it; SIMPLE-VECTOR
is of much less use as currently defined, and quite confusing).
If we fix it as described, then the answer to your question is YES.
tim
DALY@IBM.COM