Prev Up Next
We have already seen the procedure load that loads
files containing Scheme code. Loading a file
consists in evaluating in sequence every Scheme form in
the file. The pathname argument given to load is
reckoned relative to the current working directory of
Scheme, which is normally the directory in which the
Scheme executable was called.
Files can load other files, and this is useful in a
large program spanning many files. Unfortunately,
unless full pathnames are used, the argument file of a
load is dependent on Scheme's current
directory. Supplying full pathnames is not always
convenient, because we would like to move the program
files as a unit (preserving their relative pathnames),
perhaps to many different machines.
MzScheme provides the load-relative procedure that
greatly helps in fixing the files to be loaded.
load-relative, like load, takes a pathname
argument. When a load-relative call occurs in a
file foo.scm, the path of its argument is reckoned
from the directory of the calling file foo.scm. In
particular, this pathname is reckoned independent of
Scheme's current directory, and thus allows convenient
multifile program development.
Prev Up Next