The yield()
statement suspends generator()
functions. It works
like return()
except that the function continues execution at the
yielding point when it is called again.
yield()
can be called within loops and if-else branches but for
technical reasons it can't be used anywhere in R code:
yield()
cannot be called as part of a function argument. Code such aslist(yield())
is illegal.yield()
does not cross function boundaries. You can't use it a lambda function passed tolapply()
for instance.
See also
generator()
for examples.