There are several ways in which you can create a module without
loading a module-file for it. One way to do this is by asserting
clauses into a specified module. For example, the command (A) will
create the dynamic predicate f/1
and the module m
if they did not
previously exist.
| ?- assert(m:f(x)). (A)
Another way to create a module dynamically is to compile a non-module-file into a specified module. For example (B), will compile the clauses in File into the module M.
| ?- compile(M:File). (B)
The same effect can be achieved by (temporarily) changing the type-in
module to M (see ref-mod-tyi) and then calling
compile(
File)
, or executing the command in module M as
in (C).
| ?- M:compile(File). (C)