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

THE VALUES



    Well, I think everyone is wrong about this one. (THE (VALUES ...) ...)
specifies the functional type of the continuation.  This is in effect
what CLTL already says: "...indicates the parameter list of a function
that, when given to multiple-value-call along with the values, would
be suitable for receiving those values."

    I strongly disagree with any proposal which gives THE mandatory
run-time semantics.  THE is a declaration --- its presence should not
change the meaning of a correct program.  If the form returns too many
values, then the program is in error and the result is undefined.

    I agree that it is highly desirable to be able to specify the
type of the first value without worrying about the actual number of
values.  To this end, I propose that (THE FOO ...) should be
synonomous with the (THE (VALUES FOO &REST T) ...).  This allows one
to say things like (THE FIXNUM (TRUNCATE ...)).

    It should also be clarified that the VALUES type specifier may
have &ALLOW-OTHER-KEYS.

  Rob