This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home.
Source for wiki LazySequencesCowan version 1
author
cowan
comment
ipnr
127.11.51.1
name
LazySequencesCowan
readonly
0
text
== Lazy sequences ==
Preliminary list of procedures for lazy sequences. Lazy sequences are based on GeneratorsGauche, so there are only a few constructors.
{{{
Constructors
list->lseq list->vector list->string list->generator
lseq lseq* lseq-unfold lseq-unfold-right
Predicates
lseq? null-lseq? lseq=?
Selectors
lseq-first ... tenth lseq-rest lseq-last
lseq-ref
lseq-drop lseq-drop-right lseq-take lseq-take-right
lseq-split-at
The whole lazy sequence
lseq-length lseq-reverse
lseq-append lseq-concatenate
lseq-zip lseq-unzip lseq-unzip2 lseq-unzip3
lseq-unzip4 lseq-unzip5
lseq-count
Mapping and folding
lseq-map lseq-for-each lseq-for-each-subseq lseq-filter-map
lseq-fold lseq-fold-right lseq-fold-subseq lseq-fold-subseq-right
lseq-reduce lseq-reduce-right
Filtering
lseq-filter lseq-remove lseq-partition
Searching
lseq-find lseq-find-rest lseq-drop-while lseq-take-while
lseq-any lseq-every
lseq-index
lseq-member lseq-memq lseq-memv
Deleting
lseq-delete lseq-delete-neighbor-dups
Lazy alists
lseq-assoc lseq-assq lseq-assv
lseq-alist-cons lseq-alist-delete
Conversion
lseq->list lseq->vector lseq->string lseq->generator
Realization
lseq-realize! lseq-realize-once! lseq-realize-steps! lseq-realize-while!
}}}
== Implementation notes ==
An lseq is a QueuesCowan queue plus a generator. Queues can be shared between lseqs, which means that you are not allowed to remove anything from them, and the only addition operation is `lseq-realize-once!`, which realizes one value and adds it to the back of the queue.
time
2014-11-05 00:34:49
version
1