Skip to contents

Constructs an iterator that returns elements from an iterable object as long as the given predicate function returns TRUE.

Usage

i_keepwhile(object, predicate, ...)

Arguments

object

an iterable object

predicate

a function that determines whether an element is TRUE or FALSE. The function is assumed to take only one argument.

...

passed along to iteror(object, ...)

Value

iterator object

Examples

# Filters out numbers exceeding 5
not_too_large <- function(x) {
  x <= 5
}
it <- i_keepwhile(1:100, not_too_large)
unlist(as.list(it)) == 1:5
#> [1] TRUE TRUE TRUE TRUE TRUE

# Same approach but uses an anonymous function
it2 <- i_keepwhile(seq(2, 100, by=2), function(x) x <= 10)
unlist(as.list(it2)) == c(2, 4, 6, 8, 10)
#> [1] TRUE TRUE TRUE TRUE TRUE