If I write a trivial loop using call/cc

(call/cc
 (lambda (k)
   (define (loop)
     (let ([x (read)])
       (if (eq? x '())
           (k x)
           (loop))))
   (loop)))

It does exactly what I expect. If I type anything but () it reads again, but if 
I type () it prints out '() and quits

Welcome to DrRacket, version 5.1 [3m].
Language: racket; memory limit: 256 MB.
hello <-- user input
'() <-- user input
() <-- user input
'() <-- output
> 

but if I change call/cc to call-with-composable-continuatiom I see '() printed 
twice

Welcome to DrRacket, version 5.1 [3m].
Language: racket; memory limit: 256 MB.
hello <-- user input
() <-- user input
'() <-- output
'() <-- output
> 

Why is this?

Attachment: smime.p7s
Description: S/MIME cryptographic signature

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

Reply via email to