add 'infinite' generator
svn: r17552
This commit is contained in:
parent
eaad64d612
commit
db6a9de7ed
|
@ -4,7 +4,7 @@
|
||||||
scheme/control
|
scheme/control
|
||||||
scheme/stxparam scheme/splicing)
|
scheme/stxparam scheme/splicing)
|
||||||
|
|
||||||
(provide yield generator in-generator)
|
(provide yield generator in-generator infinite)
|
||||||
|
|
||||||
;; (define-syntax-parameter yield
|
;; (define-syntax-parameter yield
|
||||||
;; (lambda (stx)
|
;; (lambda (stx)
|
||||||
|
@ -74,6 +74,11 @@
|
||||||
#'[(id ...)
|
#'[(id ...)
|
||||||
(in-producer (generator body0 body ... stop-value) stop-value)]])))
|
(in-producer (generator body0 body ... stop-value) stop-value)]])))
|
||||||
|
|
||||||
|
(define (infinite sequence)
|
||||||
|
(generator
|
||||||
|
(for ([i (in-cycle sequence)])
|
||||||
|
(yield i))))
|
||||||
|
|
||||||
#|
|
#|
|
||||||
;; examples
|
;; examples
|
||||||
(for/list ([i (in-generator (for-each yield '(1 2 3)) (yield 'four))]) i)
|
(for/list ([i (in-generator (for-each yield '(1 2 3)) (yield 'four))]) i)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user