restart {base} | R Documentation |
Restart an expression
Description
restart
performs a type of non-local return.
When restart
is called with on=TRUE
the evaluator marks that
function as a return point. Any errors or signals (such as control-C on
Unix) cause control to return to the start of the function containing the
call to restart
. The most recently established function is always
entered first.
Usage
restart(on=TRUE)
Arguments
on |
if true a jump point is set; if false the jump point is removed |
Note
Use of this code is likely to result in an infinite loop. It should be avoided if possible and is included in R for compatibility with S. The planned R exception handling should remove all need for such a function.
Examples
f <- function(x, first = TRUE)
{
restart(first)
if( first ) {
first <- FALSE
return(log(x))
}
else
return(NA)
}
f("a")