Stdlib
tuprolog.solve.stdlib
¶
The standard library: the predicates, functions and operators Prolog solvers load by default.
It mostly follows ISO Prolog: type checks (atom/1, var/1, ...), term inspection
(functor/3, =../2, ...), arithmetic (is/2, </2, ...), atoms (atom_length/2,
sub_atom/5, ...), the knowledge base (assertz/1, retract/1, ...), all-solutions predicates
(findall/3, bagof/3, setof/3), flags, control (once/1, ->/2, ;/2, not/1), plus
2P-Kt's additions, e.g. between/3 and the predicates of custom data (get_persistent/2, ...).
Input and output beyond write/1 and nl/0 are in tuprolog.solve.libs.io.
Main objects and modules:
CommonBuiltins: the standard library, as atuprolog.solve.library.Library;CommonPrimitives,CommonFunctions,CommonRules: its parts;tuprolog.solve.stdlib.primitive,tuprolog.solve.stdlib.function,tuprolog.solve.stdlib.rule: its primitives, functions and rules, one by one;tuprolog.solve.stdlib.magic: the magic cut, used by its rules.
Examples:
>>> from tuprolog.solve.prolog import prolog_solver
>>> solver = prolog_solver()
>>> solver.solve_once("findall(X, between(1, 3, X), L), atom_length(hello, N)").to_dict()
{'L': [1, 2, 3], 'N': 5}
See Also
- 2P-Kt's default predicates.
CommonBuiltins
module-attribute
¶
CommonBuiltins: CommonBuiltins = (
_stdlib.CommonBuiltins.INSTANCE
)
The standard library, aliased prolog.lang: a tuprolog.solve.library.Library.
It bundles CommonPrimitives, CommonFunctions, CommonRules and the standard operators; Prolog
solvers load it (extended with a few solver-specific predicates, e.g. call/1 and catch/3).
Examples:
>>> CommonBuiltins.alias
'prolog.lang'
CommonFunctions
module-attribute
¶
CommonFunctions: CommonFunctions = (
_stdlib.CommonFunctions.INSTANCE
)
The functions of the standard library (see tuprolog.solve.stdlib.function).
Members: functions (a JVM map from signatures to logic functions) and wrappers.
CommonPrimitives
module-attribute
¶
CommonPrimitives: CommonPrimitives = (
_stdlib.CommonPrimitives.INSTANCE
)
The primitives of the standard library (see tuprolog.solve.stdlib.primitive).
Members: primitives (a JVM map from signatures to primitives) and wrappers.
CommonRules
module-attribute
¶
CommonRules: CommonRules = _stdlib.CommonRules.INSTANCE
The rules of the standard library (see tuprolog.solve.stdlib.rule).
Members: clauses (a list of clauses) and wrappers.