Pure Prolog package
Author(s): The CLIP Group.This library package allows the use of pure Prolog in a Ciao module/program. It is based on the fact that if an engine module is imported explicitly then all of them have to be imported explicitly. The engine modules are:
- engine(arithmetic)
- engine(atomic_basic)
- engine(attributes)
Attributed variables.
- engine(basic_props)
- engine(basiccontrol)
- engine(data_facts)
- engine(exceptions)
- engine(io_aux)
- engine(io_basic)
- engine(prolog_flags)
- engine(streams_basic)
- engine(system_info)
- engine(term_basic)
- engine(term_compare)
- engine(term_typing)
Note that if any of these modules is explicitely imported in a program then the language defaults to Pure Prolog, plus the functionality added by the modules explicitely imported.
It is recommended that if you explicitely import an engine module you also use this package, which will guarantee that the predicate true/0 is defined (note that this is the only Ciao builtin which cannot be redefined).
Usage and interface
- Library usage:
:- use_package(pure). or :- module(...,...,[pure]). - Imports:
- Packages:
prelude, nonpure, assertions.
- Packages:
Known bugs and planned improvements
- Currently, the following builtin predicates/program constructs cannot be redefined, in addition to true/0: (->)/2 (,)/2 (+)/1 if/3