Skip to content

Instantly share code, notes, and snippets.

@joseanpg
Created February 16, 2011 19:31
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joseanpg/829985 to your computer and use it in GitHub Desktop.
Save joseanpg/829985 to your computer and use it in GitHub Desktop.
(define (make-simple-generator iterable transformer)
(define (re-entry return)
(define (iter-action element)
(define (escaper new-re-entry)
(set! re-entry new-re-entry)
(return ( transformer element)))
(call-with-current-continuation escaper))
(for-each iter-action iterable)
(return 'Let-it-end!))
(lambda ()(call-with-current-continuation re-entry)))
(define my-gen (make-simple-generator '(1 2 3) (lambda (x)(format "Easy! ~A"(* 2 x)))))
(my-gen)
(my-gen)
(my-gen)
(my-gen)
(my-gen)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment