I'm learning Lisp, and I've just gotten to let, which I don't quite understand (the implementation of).  A common definition for it is given in terms of lambda as a macro.  However, nowhere have I seen that let must be implemented as a macro or in terms of lambda.Is it possible to define let without using a macro or lambda?  I know it can be implemented as a primitive, but I want to know whether it can be implemented in Lisp without creating a macro -- by creating a special form or a function.
Implementing `let` without using a macro
language design;lisp
It is not strictly necessary that let must be implemented as a macro. It would be possible for let to be defined as a primitive form, where the expression evaluator understands directly what let is supposed to mean.However, since Lispers are typically a minimalist bunch, let is usually defined in terms of existing facilities (a macro and lambda). This kind of definition saves having to do extra work. For example, in Scheme R5RS, the let construct is defined as library syntax:library syntax:  (let <bindings> <body>)where library syntax means:To aid in understanding and implementing Scheme, some features are marked as library. These can be easily implemented in terms of the other, primitive, features.