> Does anyone understand why we have our own private version of let? It's
> in letmac.lisp.
I would guess this is a relic from before LET was put into Maclisp.
Another such relic is code that looks like
((lambda (foo bar)
...body...
(some definition for foo)
(some definition for bar))
The reason that the Maxima Let cannot simply be cut out is that it
supports non-standard functionality, notably destructuring, e.g.
(let ( ( (a b) '(foo bar) )) a) => foo
I didn't look closely to see if there are other subtleties in the code....
An Emacs tags-search finds dozens of instances of "(let (((" sprinkled
through the code, and of course there may be cases which aren't caught
by this, e.g. (let ( <newline> (( or (let ((a b) ((b c) c)...). The
compiler should, I suppose, catch these, but they all need to be
rewritten.
-s