On Fri, May 20, 2011 at 6:21 PM, Matthias Felleisen
<matth...@ccs.neu.edu> wrote:
>
> On May 20, 2011, at 7:17 PM, Matthew Flatt wrote:
>
>> I see no reason to change `letrec'.
>
> I think letrec's behavior with call/cc on the right-hand side exposes ref 
> cells and that will bite us again and again. That's why I think changing it 
> would make sense. Then again, the bites are rare, subtle, and probably barely 
> noticable in most cases.

To solve this problem, we could consider having #lang racket's letrec
be different than #lang scheme's or the internal, result-of-expander
one.

We do this already for lambda (well, #lang racket/scheme's lambda is
different than the fully expanded one) so the confusion that results
when people write programs that process fully expanded source is
already there.

And I expect that few people actually write programs that rely on the
"I can grab a box" (unless they are solving that puzzle :) so maybe it
is okay to change the language to avoid these problems?

Robby
_________________________________________________
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Reply via email to