[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Issue: LAMBDA-FORM (Version 3)
- To: cl-cleanup@sail.stanford.edu
- Subject: Issue: LAMBDA-FORM (Version 3)
- From: Allan C. Wechsler <ACW@IVORY.S4CC.Symbolics.COM>
- Date: Tue, 11 Oct 88 11:16 EDT
- Cc: Masinter.pa@Xerox.COM
- In-reply-to: <881007-160733-1324@Xerox>
I have an observation against the proposal LAMBDA-FORM:NEW-MACRO.
In Scheme, the operator of a function invocation form has the same
evaluation semantics as the operands. In CL, however, the operator is
not evaluated in the same way that the operands are.
I am concerned lest the new macro called LAMBDA should obscure this
difference in evaluation semantics. A novice Lisp programmer would have
a hard time understanding why the #' is optional in
(MAP [#'](LAMBDA (POINT) (+ (POINT-X POINT) (POINT-Y POINT)))
POINT-LIST)
... but is required in
(MAP #'SUM-OF-COORDS POINT-LIST)
.
In sum, I believe that #' is a valuable marker of the difference in
syntax between operator and operand.
(If CL were to become truly Scheme-like, and the evaluation semantics of
operators and operands became the same, I would certainly drop this
objection. But I am opposed to papering over asymmetries with deceptive
macrology.)