From: Christophe R. <cs...@ca...> - 2005-01-24 17:33:02
|
Bruno Haible <br...@cl...> writes: > According to the ANSI CL description of the VALUES type specifier - which is > flaky regarding &KEY and &OPTIONAL, but unambiguous regarding &REST - > > (the (values integer &rest list) (values 3 4 5)) > > should succeed and > > (the (values integer &rest integer) (values 3 4 5)) > > should fail (because the list (4 5) is not an integer). In SBCL 0.8.16 it's > just the other way around: > > (the (values integer &rest list) (values 3 4 5)) => ERROR > (the (values integer &rest integer) (values 3 4 5)) => 3; 4; 5 Take a look at the Compound Type Specifier Description for the FUNCTION type, and then tell me it's not ambiguous ;-) Specifically, although I think your reading is arguable from the VALUES page in isolation, I don't think it holds up given the language about &rest on the FUNCTION page -- even though the FUNCTION page talks about argument types not return types -- because of the description of the VALUES type in terms of MULTIPLE-VALUE-CALL. Cheers, Christophe |