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?
smime.p7s
Description: S/MIME cryptographic signature
_________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users

