\Header{autoload}{On-demand Loading of Packages}
\alias{.AutoloadEnv}{autoload}
\alias{autoloader}{autoload}
\keyword{data}{autoload}
\keyword{programming}{autoload}
\begin{Description}\relax
\code{autoload} creates a promise-to-evaluate \code{autoloader} and stores it with name \code{name} in
\code{.AutoloadEnv} environment.  When \R{} attempts to evaluate
\code{name}, \code{autoloader} is run,
the package is loaded and \code{name} is re-evaluated in the
new package's environment.  The result is that \R{} behaves as if
\code{file} was loaded but it does not occupy memory.\end{Description}
\begin{Usage}
\begin{verbatim}
autoload(name, file)
autoloader(name, file)
.AutoloadEnv
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{name}] string giving the name of an object
\item[\code{file}] string giving the name of a package containing the object
\end{ldescription}
\end{Arguments}
\begin{Value}
This function is invoked for its side-effect.\end{Value}
\begin{SeeAlso}\relax
\code{\Link{delay}}, \code{\Link{library}}\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
autoload("line","eda")
search()
ls("Autoloads")
all(ls("Autoloads") == ls(envir = .AutoloadEnv))
data(cars)
plot(cars)
z<-line(cars)
abline(coef(z))
search()
detach("package:eda")
search()
z<-line(cars)
search()
\end{ExampleCode}
\end{Examples}

