[racket] call/comp, eq? and call-with-continuation-prompt

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Mon Mar 10 22:07:09 EDT 2014

Baffled, too. 

On Mar 10, 2014, at 9:44 PM, Spencer Florence wrote:

> For some reason the below program returns false:
> #lang racket
> (define g #f)
> (define p (make-continuation-prompt-tag))
> (define (t)
>   (let ([a (cons 1 2)])
>     (call-with-composable-continuation (λ (k) (set! g k)) p)
>     a))
> (call-with-continuation-prompt t p)
> (eq? (call-with-continuation-prompt g p)
>        (call-with-continuation-prompt g p))
> This happens with call/cc as well. From my understanding a should be allocated before the continuation is captured, so the two calls to g should return the same cell. If I remove the prompt tag the program returns true.
> Anyone have any clue whats going on or how to fix?
> --Spencer
> ____________________
>  Racket Users list:
>  http://lists.racket-lang.org/users

Posted on the users mailing list.