To use this in PLT Scheme, it's probably easiest to grab it from PLaneT. Here's a quick-and-dirty example to show what this does.
(module test-generator mzscheme (require (planet "generator.ss" ("dyoo" "generator.plt" 2 0))) (provide nums-from-n) ;; produces a generator that starts counting from n. (define-generator (nums-from-n n) (let loop ((n n)) (yield n) (loop (add1 n)))) (define nums-from-42 (nums-from-n 42)) (printf "~a~n" (generator-next nums-from-42)) (printf "~a~n" (generator-next nums-from-42)) (printf "~a~n" (generator-next nums-from-42)))
(Thanks to Paste Scheme for making the example code above look pretty.)
Back to PLT.