[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Order of "processing" of arguments
- To: firstname.lastname@example.org
- Subject: Order of "processing" of arguments
- From: Guy Steele <gls@Think.COM>
- Date: Mon, 23 Jan 89 12:41:17 EST
- Cc: Common-Lisp@sail.stanford.edu
- In-reply-to: Bruce Krulwich's message of Thu, 12 Jan 89 12:49:19 EST <8901121749.AA18587@ATHENA.CS.YALE.EDU>
Date: Thu, 12 Jan 89 12:49:19 EST
From: Bruce Krulwich <email@example.com>
Michael Greenwald said:
>Actually, CLtL pg 61 says that the arguments and parameters are
>processed in order, from left to right. I don't know if "processed"
>implies "evaluated", but I always assumed (perhaps incorrectly) it did.
Guy Steele replied:
>I interpret this as referring to how the (fully evaluated) arguments
>are processed during lambda-binding, not to the order in which argument
>forms in a function call are evaluated. After all, the arguments referred
>to on page 61 might have come from a list given to APPLY, rather then
>from EVAL on a function call.
This seems vacuous to me. Does this mean that an implementation in which a
procedure entry point knows how many arguments its receiving (through a link
table, for instance, or simply by counting its arguments) and constructs a
REST-arg list before doing the binding of the required args is in violation of
CLtL because it processes the rightmost argument before the leftmost one?? I
It seems to me that as long as actuals and formals are matched up correctly
there is no reason for the language specification to specify the order of the
"processing" of the arguments during lambda-binding.
The implementation need only behave "as if" it
processed them in that way.
It is always permissible to dye one's whiskers green
and then to use so large a fan that they cannot be seen.