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

Multiple Values

I mostly agree with SEF.

Better than a separate function M-V-CALL would be a new option to the
function CALL that allows one or more of several arg-forms to be
treated a la M-V-CALL.  Then it is possible to have more than one arg
form, all of whose values become separate args, intermixed with lists
of evaluated args, and ordinary args; but it is not really any harder
to implement than M-V-CALL alone.

[Background note: the Lisp machine function CALL takes alternating
options and arg-forms.  Each option says how to pass the following
arg-form.  It is either a symbol or a list of symbols.  Symbols now
allowed are SPREAD and OPTIONAL.  SPREAD means pass the elements of
the value as args.  OPTIONAL means do not get an error if the function
being called doesn't want the args.  This proposal is to add VALUES as
an alternative to SPREAD, meaning pass all values of the arg form as

If the &-keyword multiple value forms are not going to be implemented
on the current Lisp machine, that is an additional reason to keep them
out of Common Lisp, given that they are not vitally necessary for