While base::return()
can only return from the current local
frame, return_from()
will return from any frame on the
current evaluation stack, between the global and the currently
active context.
Examples
fn <- function() {
g(current_env())
"ignored"
}
g <- function(env) {
h(env)
"ignored"
}
h <- function(env) {
return_from(env, "early return")
"ignored"
}
fn()
#> [1] "early return"