What if you do this: (let l () (with-handlers ([void (l)]) (l)))
This catches `exn:break` (and everything else) and calls `l`. Sam On Sat, Apr 5, 2014 at 2:54 PM, Greg Hendershott <greghendersh...@gmail.com> wrote: >> thread cells are subject to GC and that's fine. The real issue is that I >> might write a program that does (effectively) this: >> >> > (let l()(l)) >> >> and then I'm stuck. > > Good point, but that's not a problem. A break returns to read-eval-print-loop. > > Example transcript: > >> (let l () (l)) > C-cC-c > ; user break >> (displayln "broken but alive") > broken but alive >> > > (The double Control-C just being necessary as usual in an Emacs > comint-buffer.) > ____________________ > Racket Users list: > http://lists.racket-lang.org/users ____________________ Racket Users list: http://lists.racket-lang.org/users