On Fri, May 20, 2011 at 4:39 PM, Matthias Felleisen <matth...@ccs.neu.edu> wrote: > > -- I think my preferred solution would be to wrap letrec so that > continuations grabbed during the setup set up a continuation mark that labels > them as 'dangerous'. When you reinvoke them, the existence of the mark tells > you that the reference cells should be reinitialized (probably only the ones > on the control flow from the continuation point). > > -- An alternative could be to stick a lexical identifier into letrec > declarations that gets removed from the scope once the letrec is established. > It would reappear when you invoke a continuation from the RHS and thus you'd > know to reini the ref cells. BUT, this requires a mechanism that is not > expressible at the surface of Racket. And it's odd.
I think the key missing piece here is that Matthew wants to avoid having the reference cells *at all*. If you use `let*', you don't get any reference cells. -- sam th sa...@ccs.neu.edu _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev