[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
As an implementor, I would like to signal an error whenever someone
attempts to return (values ...) to a context where multiple values
aren't expected, or something other than (values ...) to a context
expecting multiple values. Requiring "(values e)" to be the same as
"e" makes it impossible to do this. As you pointed out in your note,
this won't affect anyone who doesn't like this behavior, since they
can always create their own versions of "values" and "with-values"
that circumvent the error checks.
Why do you consider (values <single expression>) to be returning
multiple values? It's very clearly returning one.
Your argument seems very similar to trying to distinguish between
(apply f (list x))
To be consistent, you should want us to categorize procedures
according to whether they can be APPLY'ed (sic), and only allow
APPLY'able (sic) procedures to be APPLY'ed. Otherwise the
implementation should be allowed to signal an error.