[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Issue: FUNCTION-CALL-EVALUATION-ORDER (version 1)
- To: willc%tekchips.CRL@tektronix.tek.com, cl-cleanup@SAIL.STANFORD.EDU
- Subject: Issue: FUNCTION-CALL-EVALUATION-ORDER (version 1)
- From: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>
- Date: Wed, 23 Mar 88 13:48 EST
- In-reply-to: <8803222058.AA25927@tekchips.CRL.TEK.COM>
Date: 22 Mar 88 12:58:12 PST (Tue)
From: willc%tekchips.CRL@tektronix.tek.com
Problem Description:
CLtL does not say whether the function expression of a call is evaluated
before or after the argument expressions.
It also does not say in what order the argument expressions are evaluated!
Shouldn't we deal with that first, or at the same time? As far as I know
current practice is always to evaluate the argument expressions in a function
call from left to right, and I would certainly support a proposal to mandate
that in the language. Someone please tell me that I am confused and have
overlooked the place in CLtL that specifies the order of evaluation of
function arguments.
Proposal (FUNCTION-CALL-EVALUATION-ORDER:UNSPECIFIED):
Common Lisp does not specify whether the function expression of a call is
evaluated before or after the argument expressions. Programs that rely on
a particular order of evaluation are in error.
I support this proposal.
Current Practice:
TI and Symbolics evaluate the function expression last. Lucid and Coral
sometimes evaluate the function expression first and at other times evaluate
the function expression last.
Actually Symbolics is in the same camp as Lucid and Coral here, although
right now the answer is usually last. Whether TI evaluates the function
first or last depends on which release of TI software you're using.