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

Issue: LAMBDA-FORM (Version 3)



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