add sequence->generator and change make-repeated-sequence-generator to use that instead of infinite-generator
svn: r17583
This commit is contained in:
parent
73d68593af
commit
a0ba9a7649
|
@ -5,6 +5,7 @@
|
||||||
scheme/stxparam scheme/splicing)
|
scheme/stxparam scheme/splicing)
|
||||||
|
|
||||||
(provide yield generator in-generator infinite-generator
|
(provide yield generator in-generator infinite-generator
|
||||||
|
sequence->generator
|
||||||
make-repeated-sequence-generator)
|
make-repeated-sequence-generator)
|
||||||
|
|
||||||
;; (define-syntax-parameter yield
|
;; (define-syntax-parameter yield
|
||||||
|
@ -69,6 +70,11 @@
|
||||||
body0 body ...
|
body0 body ...
|
||||||
(loop))))
|
(loop))))
|
||||||
|
|
||||||
|
(define (sequence->generator sequence)
|
||||||
|
(generator
|
||||||
|
(for ([i sequence])
|
||||||
|
(yield i))))
|
||||||
|
|
||||||
(define stop-value (gensym))
|
(define stop-value (gensym))
|
||||||
|
|
||||||
(define-sequence-syntax in-generator
|
(define-sequence-syntax in-generator
|
||||||
|
@ -82,9 +88,7 @@
|
||||||
(in-producer (generator body0 body ... stop-value) stop-value)]])))
|
(in-producer (generator body0 body ... stop-value) stop-value)]])))
|
||||||
|
|
||||||
(define (make-repeated-sequence-generator sequence)
|
(define (make-repeated-sequence-generator sequence)
|
||||||
(infinite-generator
|
(sequence->generator (in-cycle sequence)))
|
||||||
(for ([i sequence])
|
|
||||||
(yield i))))
|
|
||||||
|
|
||||||
#|
|
#|
|
||||||
;; examples
|
;; examples
|
||||||
|
|
Loading…
Reference in New Issue
Block a user