LogicProgrammingScope
Full term-construction and unification scope of :dsl-unify's Prolog DSL: composes :dsl-core's scope mixins (MinimalLogicProgrammingScope, LogicProgrammingScopeWithSubstitutions, LogicProgrammingScopeWithPrologStandardLibrary, LogicProgrammingScopeWithOperators, LogicProgrammingScopeWithVariables — none of which know anything about unification) with LogicProgrammingScopeWithUnification, so an it.unibo.tuprolog.unify.Unificator's operations (bare, or through the mguWith/matches/unifyWith sugar) are available alongside the rest of the DSL, all self-referentially typed so chained calls keep resolving to this same, richer scope.
logicProgramming/lp are the idiomatic way to obtain and use one, optionally choosing which Unificator strategy governs it; of and empty exist for callers that need to plug in a custom Termificator, VariablesProvider or Unificator (or build a scope without immediately entering it). it.unibo.tuprolog.dsl.LogicProgrammingScope.withUnification upgrades an existing :dsl-core scope into one of these, reusing its underlying Scope/Termificator/VariablesProvider.
See also
Properties
Functions
Creates a copy of this scope, backed by the same it.unibo.tuprolog.core.Scope, using unificator instead of the current one.
Overload of Unificator.match accepting plain values instead of Terms: term1 and term2 are auto-toTerm-ed before delegating to this scope's unificator.
Overload of Unificator.mgu accepting plain values instead of Terms: term1 and term2 are auto-toTerm-ed before delegating to this scope's unificator, so e.g. raw Strings, numbers or already-built Terms can be mixed freely.
Infix alias of mgu for Any operands: computes the Most General Unifier of this and other (both auto-toTerm-ed), with occurs-check enabled, using this scope's unificator.
Overload of Unificator.unify accepting plain values instead of Terms: term1 and term2 are auto-toTerm-ed before delegating to this scope's unificator.