[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.
Many of them have call-by-reference, which allows essentially the same
functionality.  Indeed, few of them have multiple value returns in the
Lisp sense, although the general idea is around, and was included in at
least some of the proposals for "DOD-1" (it's sometimes called "val out"
paramters.) Lisp is neither call-by-value or call-by-reference exactly,
so a direct comparision is difficult.  My point was that there is a
pretty good way to return many things in the call-by-reference pardigm,
it is used to good advantage by Pascal and PL/1 programs, and Lisp
programmer who want to do analogous things have traditionally been up
the creek.

    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".
When we added multiple values to the Lisp Machine years ago, we decided that
we couldn't "do it right", but it was a useful enough facility to keep in
spite of all this.  I still think so, and it applies to Common Lisp for the
same reasons.