[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.