[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


    Date: Mon, 1 Jun 87 22:12 EDT
    From: Robert W. Kerns <RWK@YUKON.SCRC.Symbolics.COM>

	Date: 1 June 1987, 11:24:47 EDT
	From: Timothy Daly <DALY@ibm.com>

        . . .

	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.

Historically, SIMPLE-VECTOR is a contraction of SIMPLE-GENERAL-VECTOR, i.e.
(SIMPLE-ARRAY T (*)) -- it IS intentionally like SIMPLE-STRING.  The name got
contracted because many got bent out of shape by the length of SIMPLE-GENERAL-VECTOR,
and I guess no one argued (strongly enough?) against the inconsistent nomenclature.

I think this has caused enough confusion to require attention and an eventual change,
but I am against any reinterpretation of the meaning in the current CL incarnation.
Without looking, i would bet that the only inconsistency is in the name itself, and
the manual is fairly clear on what it means.