Restart an expression
Usage
restart(on=TRUE)
Arguments
on
|
if true a jump point is set; if false the jump point is removed
|
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.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")