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

multiple values



NIL is not going to use the multiple-value scheme described by JonL,
but most likely something similar to what is in use on the "A"
lisp machine.  Function calls which pass back multiple-values
tail-recursively will be flagged;  extra information will be pushed
for call frames which expect to receive multiple values.  Returning
multiple values will involve tracing back call frames, and then if
it is found that multiple values are not expected, throwing them away,
otherwise interpreting what was pushed there in some fashion.

A declaration to the effect that a function returns exactly one value
always will be helpful.  My feeling is that this should not be used to
enforce the single-value return, except perhaps by having the
interpreter complain when the function returns multiple values.  (We
have some philosophy about declarations and program behaviour, don't
we?)  Actually stripping extra values can be done with (VALUES
<form>), which doesn't seem to me to be to be particularly unclear.