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

Re: Order of evaluation in PUSH (& PUSHNEW)



    Date: Thu, 21 May 87 14:19 EDT
    From: P. T. Withington <PTW@YUKON.SCRC.Symbolics.COM>

    I see no reason to require evaluation order of arguments when there is
    already a mechanism to enforce it:  use LET* where evaluation order is
    important.  A good compiler should be able to optimize away the implied
    temporaries when the expressed evaluation order matches the
    implementation evaluation order.

Remember that Common Lisp is a language with side-effects, and in such
languages there are more constraints on evaluation order than just the
data dependencies.  With LET* you are talking data dependencies.

In any case, Scott Fahlman explained quite clearly in an earlier message
why Common Lisp takes the stand it does.  I think that reasoning is just
as true today as it was three years ago.