[r6rs-discuss] [Formal] Rename named `let'

From: Eli Barzilay <eli>
Date: Fri Jan 26 08:28:56 2007

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

This archive was generated by hypermail 2.3.0 : Wed Oct 23 2024 - 09:15:01 UTC