The following predicates can be used to query the module system for reflexive programming:
- True if Module is a currently defined module. This predicate enumerates all modules, whether loaded from a file or created dynamically. Note that modules cannot be destroyed in the current version of SWI-Prolog.
- module_property(?Module, ?Property)
- True if Property is a property of Module. Defined
- True when Class is the class of the module. Defined classes
- Default for user-defined modules.
systemand modules from
- Other modules from the system directories.
- Modules that create tests.
- Modules that only support the development environment.
- True if Module was loaded from File.
- True if Module was loaded from the N-th line of file.
- True if Module exports the given predicates. Predicate indicators are in canonical form (i.e., always using name/arity and never the DCG form name//arity). Future versions may also use the DCG form and include public operators. See also predicate_property/2.
- True if Module exports the given operators. Each exported
operator is represented as a term
- Modify properties of the module. Currently, the following properties may be modified:
Tags are associated to your profile if you are logged in