| i_tee {iterors} | R Documentation | 
Create multiple iterators from one source
Description
i_tee(obj, n) consumes and buffers the output of a single iterator
obj so that it can be read by n independent sub-iterators.
Usage
i_tee(obj, n, max = 2^16 - 1, ...)
Arguments
obj | 
 an iterable object  | 
n | 
 the number of iterators to return  | 
max | 
 The maximum number of values to buffer.  | 
... | 
 passed along to   | 
Details
It works by saving the output of source obj in a queue, while
each sub-iterator has a "read pointer" indexing into the
queue. Items are dropped from the queue after all sub-iterators
have seen them.
This means that if one sub-iterator falls far behind the others, or
equivalently if one sub-iterator reads far ahead its cohort the
others, the intervening values will be kept in memory. The max
argument gives a limit on how many items will be held. If this
limit is exceeded due to one sub-iterator reading far ahead of the
others, an error will be thrown when that sub-iterator attempts to
read a new value.
Value
a list of n iterators.
Author(s)
Peter Meilstrup