Description Usage Arguments Details Value Ending Iteration Threading
Create a Python iterator from an R function
py_iterator(fn, completed = NULL)
R function with no arguments.
Special sentinel return value which indicates that
iteration is complete (defaults to
Python generators are functions that implement the Python iterator
protocol. In Python, values are returned using the
yield keyword. In R,
values are simply returned from the function.
In Python, the
yield keyword enables successive iterations to use the state
of previous iterations. In R, this can be done by returning a function that
mutates it's enclosing environment via the
<<- operator. For example:
1 2 3 4 5 6 7
Then create an iterator using
g <- py_iterator(sequence_generator(10))
Python iterator which calls the R function for each iteration.
In Python, returning from a function without calling
yield indicates the
end of the iteration. In R however,
return is used to yield values, so
the end of iteration is indicated by a special return value (
default, however this can be changed using the
completed parameter). For
1 2 3 4 5 6 7 8 9 10
Some Python APIs use generators to parallelize operations by calling the
generator on a background thread and then consuming it's results on
the foreground thread. The
py_iterator() function creates threadsafe
iterators by ensuring that the R function is always called on the main
thread (to be compatible with R's single-threaded runtime) even if the
generator is run on a background thread.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.