25 lines
432 B
R
25 lines
432 B
R
|
library(iterators)
|
||
|
|
||
|
ilimit <- function(it, times) {
|
||
|
it <- iter(it)
|
||
|
|
||
|
nextEl <- function() {
|
||
|
if (times > 0)
|
||
|
times <<- times - 1
|
||
|
else
|
||
|
stop('StopIteration')
|
||
|
|
||
|
nextElem(it)
|
||
|
}
|
||
|
|
||
|
obj <- list(nextElem=nextEl)
|
||
|
class(obj) <- c('ilimit', 'abstractiter', 'iter')
|
||
|
obj
|
||
|
}
|
||
|
|
||
|
it <- ilimit(icount(Inf), 3)
|
||
|
print(nextElem(it))
|
||
|
print(nextElem(it))
|
||
|
print(nextElem(it))
|
||
|
print(tryCatch(nextElem(it), error=function(e) e))
|