On Jan 26, Michael Sperber wrote:
>
> ... which is not making any positive suggestions. Since still don't
> have any idea what you think I suggested, it's hard for me to offer
> a precise comment. All I suggested was that
Retry: I read this:
> the expansion for "named letrec" be identical to what's currently
> the expansion for "named let." [0]
as literally saying that the expansion of
(letrec loop ([x x]) x) [1]
is the same as the expansion of
(let loop ([x x]) x) [2]
and if that's the same named let I know, then it's the same as
(let ([x x]) x) [3]
and we get to the conclusion that:
(letrec loop ([x x]) x) [1]
is not the same as
(letrec ([x x]) x) [4]
which, IMO, is a Really Bad Thing.
> Sure the jump you describe is "harmless", but it's only harmless in
> circumstances I've never seen in the wild. Why would you write a
> named let if the name doesn't occur in the body?
What I meant was that adding a name to a `let' (moving from [3] to
[1]) does not change the meaning of the expression. But adding a name
to a `letrec' (moving from [4] to [1]) does -- at least as far as I
can tell from [0].
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://www.barzilay.org/ Maze is Life!
Received on Fri Jan 26 2007 - 08:28:51 UTC