Loading

Paste #pq6hal0s7

  1. (define (make-coroutine-generator thunk)
  2.   (define tag (make-prompt-tag))
  3.   (define (run)
  4.     (thunk (lambda (val) (abort-to-prompt tag val)))
  5.     (eof-object))
  6.   (lambda ()
  7.     (call-with-prompt tag
  8.                       run
  9.                       (lambda (k ret)
  10.                         (set! run k)
  11.                         ret))))