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

Re: MVLet

Regarding return of multiple values: "...their lack has been a traditional
weakness in Lisp..."  What other languages have this feature?  Many have
call-by-reference which allows essentially the same functionality, but I
don't know of any which have multiple value returns in anything like the
Common Lisp sense.

I can certainly see the benefit of including them, but the restrictions
placed on them and the dismal syntax for using them counteracts the
intention of their inclusion, namely to increase the clarity of those
functions that have more than one value of interest.  If we were using a
graphical dataflow language they would fit like a glove, without all the
fuss.  The problem arises because each arrangement of arcs passing values
requires either its own special construct or binding the values to
variables.  I'm not suggesting we should throw out the n-in, 1-out nature
of Lisp forms in favor of an n-in, m-out arrangement, (at least not right
now!) rather that the current discussion of multiple values is unlikely to
come to a satisfactory conclusion due to the "tacked-on afterthought"
nature of the current version.  We may feel that it is a useful enough
facility to keep in spite of all this, but it's probably too much to hope
to "do it right".