Loading a program is accomplished by one of these predicates
[]
[
:File|
+Files]
load_files(
:Files)
load_files(
:Files,
+Options)
compile(
:File)
consult(
:File)
reconsult(
:File)
ensure_loaded(
:File)
The following notes apply to all the Load Predicates:
user
absolute_file_name/2
. For information on file names refer
to ref-fdi.
fileerrors
flag is set to
off
.
Errors detected during compilation, such as an attempt to redefine a built-in predicate, also cause exceptions to be raised. However, these exceptions are caught by the compiler, an appropriate error message is printed, and compilation continues.
on
, but can be turned
off
if desired by setting the appropriate flags, which are:
single_var_warnings
on
, warnings are printed when a sentence
(see ref-syn-syn-sen) containing variables not beginning with
‘_’ occurring once only is compiled or consulted.
The Prolog flag legacy_char_classification
(see Prolog Flags) expands the set of variable names for which warnings are
printed. When legacy_char_classification
is in effect warnings
are printed also for variables that occur only once and whose name begin
with ‘_’ followed by a character that is not an uppercase Latin 1
character.
redefine_warnings
on
, the user is asked what to do when:
discontiguous_warnings
on
, warnings are printed when clauses are not together in
source files, and the relevant predicate has not been declared
discontiguous
.
multifile
if its clauses
are to be spread across several different files. See the reference
page for multifile/1
.
load_files(Module:File)
can be used to load the file into the
specified module. See ref-mod-def for information about
module-files. If a file being loaded is a module-file, it is
first loaded in the normal way, the source module imports all the
public predicates of the module-file except for use_module/[1,2,3]
and
load_files/[1,2]
if you specify an import list.
:-/1
or ?-/1
,
these are executed as they are encountered.
Only the
first solution of directives is produced, and variable
bindings are not displayed. Directives that fail or raise
exceptions give rise to warning or error messages, but do not terminate
the load. However, these warning or error messages can be
intercepted by the hook user:portray_message/2
, which can
call abort/0
to terminate the load, if that is the desired
behavior.
:- [otherfile].
In this case, if otherfile is a relative filename it is resolved with respect to the directory containing the file that is being loaded, not the current working directory of the Prolog system.
Any legal Prolog goal may be included as a directive. There is no difference between a ‘:-/1’ and a ‘?-/1’ goal in a file being compiled.
user
, or File is a list, and
during loading of the list user
is encountered, procedures are to
be typed directly into Prolog from user_input
, e.g. the terminal.
A special prompt,
‘| ’, is displayed at the beginning of every new clause entered
from the terminal. Continuation lines of clauses typed at the
terminal are preceded by a prompt of five spaces. When all clauses
have been typed in, the last should be followed by an end-of-file character, or
the atom end_of_file
followed by a full-stop.
user:term_expansion/6
and goal_expansion/5
, you can
specify any desired transformation to be done as clauses are loaded.
prolog_load_context/2
.
char_conversion/2
.