of
fun of(scope: Scope = Scope.empty(), termificator: Termificator = Termificator.default(scope), variablesProvider: VariablesProvider = VariablesProvider.of(scope), unificator: Unificator = Unificator.default, theoryFactory: TheoryFactory = IndexedTheoryFactory(unificator), solverFactory: SolverFactory): LogicProgrammingScope
Builds a LogicProgrammingScope from its individual collaborators, defaulting most of them from scope and unificator. termificator, variablesProvider and theoryFactory are re-scoped/re-unified to scope/unificator as needed if they don't already match; solverFactory is likewise rebuilt with unificator if its own default differs.
Most client code should go through logicProgramming/lp/prolog instead; use this overload when an existing Scope (e.g. one shared with other DSL code) needs to be reused rather than started fresh.
Parameters
solverFactory
the SolverFactory backing this scope's it.unibo.tuprolog.solve.MutableSolver (see LogicProgrammingScopeWithResolution.defaultSolver).
fun of(solverFactory: SolverFactory, unificator: Unificator = solverFactory.defaultUnificator, scope: Scope = Scope.empty(), termificator: Termificator = Termificator.default(scope), variablesProvider: VariablesProvider = VariablesProvider.of(scope), theoryFactory: TheoryFactory = IndexedTheoryFactory(unificator)): LogicProgrammingScope
Overload of of taking solverFactory first and defaulting unificator from it.