>>199
You can't in CL; you need Scheme and its realized continuations for that. Here's how you might do it:
(define (make-generator fun)
(let ((current #f))
(lambda ()
(call-with-current-continuation
(lambda (outer)
(if current
(begin (current))
(begin (fun (lambda (value)
(call-with-current-continuation
(lambda (inner)
(set! current inner)
(outer value)))))
(call-with-current-continuation
(lambda (end)
(set! current end)))
(throw 'no-more))))))))