How is let*
defined in Chez Scheme/Racket? In particular, why does this first example evaluate to 6...
(let* ((let +) (a (let 2 4)))
a)
...when my understanding from exercise 3.1.3 is that let*
can be expanded to nested let
(or even nested let*
) statements, but expanding the above example as one would expect the interpreter to do results in an error?
(let ((let +))
(let (a (let 2 4))
a))
Is the implementation different than in the exercise? I would expect that first example to also result in an error due to the new definition of let
.