\Header{restart}{Restart an Expression}
\keyword{programming}{restart}
\begin{Description}\relax
\code{restart} performs a type of non-local return.\end{Description}
\begin{Usage}
\begin{verbatim}
restart(on = TRUE)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{on}] if true a jump point is set; if false the jump point is removed.
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
When \code{restart} is called with \code{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 \code{restart}. The most recently
established function is always entered first.\end{Details}
\begin{Note}\relax
The direct use of \code{restart} is likely to result in an infinite loop.
Use \code{\Link{try}} unless you are \bold{sure} you know what
you are doing.\end{Note}
\begin{SeeAlso}\relax
\code{\Link{options}} for setting error handlers and suppressing the
printing of error messages.\end{SeeAlso}

