restart {base}R Documentation

Restart an Expression

Description

restart performs a type of non-local return.

Usage

restart(on = TRUE)

Arguments

on if true a jump point is set; if false the jump point is removed

Details

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")

[Package Contents]