Мне нужна функция "inside" для возврата, как если бы это была родительская функция.
Пример:
some_fn <- function() {
inside_fn <- function() {
eval.parent(return("I wish"))
}
inside_fn()
return("I wish not")
}
some_fn()
## [1] "I wish not"
Использование stop()
с on.exit()
работает ...
some_fn_2 <- function() {
on.exit(return("Well, this works"))
inside_fn <- function() {
eval.parent(return("I wish"))
stop()
}
inside_fn()
return("I wish not")
}
some_fn_2()
[1] "Well, this works"
... но вроде как хакерский, и мне интересно, есть ли более чистый способ сделать это. Я знаю, что это не совсем просто; это будет означать игнорирование части стека вызовов, но все же, я хотел бы узнать ваши мысли, уважаемое сообщество. :)