diff --git a/collects/scheme/generator.ss b/collects/scheme/generator.ss index fff882ef60..8880ba9b02 100644 --- a/collects/scheme/generator.ss +++ b/collects/scheme/generator.ss @@ -4,7 +4,7 @@ scheme/control scheme/stxparam scheme/splicing) -(provide yield generator in-generator) +(provide yield generator in-generator infinite) ;; (define-syntax-parameter yield ;; (lambda (stx) @@ -74,6 +74,11 @@ #'[(id ...) (in-producer (generator body0 body ... stop-value) stop-value)]]))) +(define (infinite sequence) + (generator + (for ([i (in-cycle sequence)]) + (yield i)))) + #| ;; examples (for/list ([i (in-generator (for-each yield '(1 2 3)) (yield 'four))]) i)