SolverFactory
A factory for a specific Solver implementation (i.e. a specific resolution strategy), providing both defaults for every piece of a solver's state and constructors for Solver/MutableSolver instances.
Each resolution strategy module (:solve-classic, :solve-streams, :solve-concurrent, :solve-problog) provides its own SolverFactory implementation, reachable from Solver's companion object (e.g. Solver.prolog). All factories are interchangeable from client code's perspective, since they all produce the same Solver interface.
See also
Properties
The standard-library Library this implementation ships with (see defaultBuiltins usages in ...WithDefaultBuiltins methods).
The default (empty) dynamic knowledge base for solvers created by this factory.
The default standard error channel for solvers created by this factory.
The default FlagStore for solvers created by this factory.
The default standard input channel for solvers created by this factory.
The default standard output channel for solvers created by this factory.
The default Runtime of loaded libraries for solvers created by this factory; empty unless overridden.
The default (empty) static knowledge base for solvers created by this factory.
The default Unificator for solvers created by this factory.
The default warnings channel for solvers created by this factory.
Functions
Same as rawSolverOf, but returns a MutableSolver.
Same as solverOf, but returns a MutableSolver. Does not include defaultBuiltins.
Same as mutableSolverOf, but adds defaultBuiltins on top of otherLibraries.
Returns a new, mutable SolverBuilder seeded with this factory's defaults, for fluent, stepwise construction.
Creates a new Solver, with an explicit InputStore/OutputStore rather than individual channels.
Creates a new Solver with this implementation's resolution strategy, defaulting every unspecified argument to this factory's default* values. Does not include defaultBuiltins; see solverWithDefaultBuiltins for that.
Same as solverOf, but adds defaultBuiltins on top of otherLibraries.