Loading a program is accomplished by one of these predicates
The following notes apply to all the Load Predicates:
absolute_file_name/2. For information on file names refer to ref-fdi.
fileerrorsflag is set to
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
offif desired by setting the appropriate flags, which are:
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
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
on, the user is asked what to do when:
on, warnings are printed when clauses are not together in source files, and the relevant predicate has not been declared
multifileif its clauses are to be spread across several different files. See the reference page for
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
load_files/[1,2]if you specify an import list.
?-/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/0to terminate the load, if that is the desired behavior.
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
useris 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_filefollowed by a full-stop.
goal_expansion/5, you can specify any desired transformation to be done as clauses are loaded.