Hmmm, I notice the ANS says this about the VALUES type specifier:
This *type specifier*http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_t.htm#type_specifier can be used only as the *value-type* in a *function*http://www.lispworks.com/documentation/HyperSpec/Body/t_fn.htm#function *type specifier*http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_t.htm#type_specifier or a *the*http://www.lispworks.com/documentation/HyperSpec/Body/s_the.htm#the *special form*http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_s.htm#special_form .
I consider this to be a flaw in the ANS. The CHECK-TYPE macro takes a _place_ as its first subform, and _place_ is defined in the glossary in terms of _generalized reference_ which in 5.1.1 contains text mentioning values plural in a couple places, e.g.
the ultimate result of evaluating *setf*http://www.franz.com/support/documentation/current/ansicl/dictentr/setfpset.htm is the value or values being stored.
I think during the proofreading of the many ANS drafts no one except me ever checked this issue for consistency, and I did it 21 years too late.
If god had intended standards to be such precious things, he wouldn't have made so many of them.
On Sun, Sep 22, 2013 at 5:45 PM, Steve Haflich shaflich@gmail.com wrote:
On Sun, Sep 22, 2013 at 1:18 PM, Scott McKay swmckay@gmail.com wrote:
It's sad that this conses...
A challenge exercise for students:
If an implementation can stack-cons a &rest list, no heap consing is necessary.
Hint: multiple-value-call