Find head/tail that all satisfies a predicate.

head_while(.x, .p, ...)
tail_while(.x, .p, ...)

## Arguments

.x |
A list or atomic vector. |

.p |
A single predicate function, a formula describing such a
predicate function, or a logical vector of the same length as `.x` .
Alternatively, if the elements of `.x` are themselves lists of
objects, a string indicating the name of a logical element in the
inner lists. Only those elements where `.p` evaluates to
`TRUE` will be modified. |

... |
Additional arguments passed on to `.f` . |

## Value

A vector the same type as `.x`

.

## Examples

pos <- function(x) x >= 0
head_while(5:-5, pos)

#> [1] 5 4 3 2 1 0

#> [1] -1 -2 -3 -4 -5

big <- function(x) x > 100
head_while(0:10, big)

#> integer(0)

tail_while(0:10, big)

#> integer(0)