[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Type specifiers in THE constructs
Date: Saturday, 23 January 1988 01:07-EST
From: Jon L White <edsel!jonl at labrea.Stanford.EDU>
To: labrea!common-lisp%su-ai at labrea.Stanford.EDU
Re: Type specifiers in THE constructs
Does the type-specifier in (THE <type-spec> (MUMBLE)) refer to the type
of the first value (of zero or more values) returned by (MUMBLE), or does
it refer to the multiple-value spectrum? In short, is is a shorthand for
1. (THE (VALUES <type-spec> &REST T) (MUMBLE))
or for
2. (THE (VALUES <type-spec>) (MUMBLE))
I suggest the first interpretation, with a note that when the
<type-spec> is a VALUES type, THE should enforce exactly the specified
values. (which may be what you had in mind) Hence:
(THE NUMBER (TRUNCATE 10 3)) ;legal
(THE (VALUES NUMBER) (TRUNCATE 10 3)) ; illegal
I could also live with the second interpretation. I just wanted to
make clear that I consider the multiple-value semantics of THE to be
useful. Even if use of a non-values type required a single value, it
would be worth supporting THE VALUES so that multiple value results
can be declared.
Although interpretation 1 may seem a bit sleazy, it is consistent with
the general value-count sleaze in Common Lisp.
Rob