27 lines
1.1 KiB
Scheme
27 lines
1.1 KiB
Scheme
#!r6rs
|
|
(library (srfi :158)
|
|
(export
|
|
;; Generator constructors
|
|
generator circular-generator make-iota-generator make-range-generator
|
|
make-coroutine-generator list->generator vector->generator
|
|
reverse-vector->generator string->generator bytevector->generator
|
|
make-for-each-generator make-unfold-generator
|
|
|
|
;; Generator operations
|
|
gcons* gappend gflatten ggroup gmerge gmap gcombine gfilter gremove
|
|
gstate-filter gtake gdrop gtake-while gdrop-while gdelete
|
|
gdelete-neighbor-dups gindex gselect
|
|
|
|
;; Consuming generated values
|
|
generator->list generator->reverse-list generator->vector
|
|
generator->vector! generator->string generator-fold generator-for-each
|
|
generator-map->list generator-find generator-count generator-any
|
|
generator-every generator-unfold
|
|
|
|
;; accumulator constructors
|
|
make-accumulator count-accumulator list-accumulator
|
|
reverse-list-accumulator vector-accumulator reverse-vector-accumulator
|
|
vector-accumulator! string-accumulator bytevector-accumulator
|
|
bytevector-accumulator! sum-accumulator product-accumulator)
|
|
(import (srfi :158 generators-and-accumulators)))
|