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

Multiple Values

What Moon says is true: I am writing a compiler, and parsing the
&-mumbles is quite easy compared to generating the code that implements
taking the returned values off of the stack and putting them where they
go while managing to run the default-forms and so on.  I could live
without the &-mumble forms of the receivers, although they seem like
they may be a good idea, and we are willing to implement them if they
appear in the Common Lisp definition.  I would not say that it is
generally an easy feature to implement.

It should be kept in mind that multiple-value-call certainly does not
provide the functionality of the &-mumble forms.  Only rarely do you
want to take all of the values produced by a function and pass them all
as successive arguments to a function.  Often they are some values
computed by the same piece of code, and you want to do completely
different things with each of them.

The goal of the &-mumble forms was to provide the same kind of
error-checking that we have with function calling.  Interlisp has no
such error-checking on function calls, which seems like a terrible thing
to me; the argument says that the same holds true of returned values.
I'm not convinced by that argument, but it has some merit.