25 lines
504 B
R
25 lines
504 B
R
|
library(iterators)
|
||
|
|
||
|
# return an iterator that returns the specified value
|
||
|
# a limited number of times
|
||
|
irep <- function(x, times) {
|
||
|
nextEl <- function() {
|
||
|
if (times > 0)
|
||
|
times <<- times - 1
|
||
|
else
|
||
|
stop('StopIteration')
|
||
|
|
||
|
x
|
||
|
}
|
||
|
|
||
|
obj <- list(nextElem=nextEl)
|
||
|
class(obj) <- c('irep', 'abstractiter', 'iter')
|
||
|
obj
|
||
|
}
|
||
|
|
||
|
# create an iterator that returns a 7 exactly 6 times
|
||
|
it <- irep(7, 6)
|
||
|
|
||
|
# convert the iterator into a list, which gets all of its values
|
||
|
print(unlist(as.list(it)))
|