Re: My Patented Lambda Substitute

From: Steven M. Haflich (smh_no_spiced_ham_at_alum.mit.edu)
Date: 01/25/05


Date: Tue, 25 Jan 2005 07:22:52 GMT

David Steuber wrote:

> How's my understanding?

The symbol cl:lambda has two meanings within the ANS.

One is that it names a macro, approximately:

   (defmacro lambda (&rest r) `(function (lambda ,@r)))

The other is as a syntactic marker denoting a lambda expression
that denotes a function:

   ((lambda (x y) (cons y x)) 1 2) ==> (2 . 1)

You can recode an alternative lambda macro in a variety of
equivalent ways, but there is no way you can implement the
syntactic marker. It is built into the interpreter, compiler,
and whatever else the implementation implements. This is
similar to the several syntactic markers known as lambda-list
keywords; there is no way you can redefine these without
reimplementing a huge amount of the language.