> "The values are not bound to the variables until execution of the
> prg has begun, so this excludes using v1 to set the value of v2 as
> in this example:"
> This must be plain wrong, and that probably explains why the example
> is still missing. This is my counterexample:
> : (let (X 3 Y (inc X)) Y)
> -> 4
Yes, you are right. In fact, it is an often-used feature that variables
in 'let' rely on previously bound variables. This is consistent with
other situations, e.g. 'set' or 'setq' 'setq', and very useful.
The other case (binding all variables simultaneously, as is done during
function calls) is much less useful. In 'let' all variables are visible
in that place, so each expression can access the bound results of
previous expressions. For function calls, of course, this is not an
option, as the variables are not locally visible and would create
confusion if they were not bound simultaneously.
> This Wiki article really needs to be completed. I'm a bit reluctant
> to touch it, because if I do, I feel I have to make sure the entire
I was hoping that the original author danelliottster would react, but I
notice that he already unsubstribed from the mailing list. So he seems
to be no longer interested :(
> article is OK, since my name will show at the bottom for a good
> while. ;-) Maybe it's better to remove this article temporarily ...?
I would be glad if you'd take over ;-)
I'll better not do that, as I wrote about my view of the core language
in other places (e.g. the references).