ExpressionReducer

class ExpressionReducer<E : ExecutionContext>(request: Solve.Request<E>, index: Int? = null) : AbstractEvaluator<E, Term>

Reduces a Term as an expression by evaluating all the evaluable sub-terms it contains w.r.t. the loaded functions provided through request. If the input expression is non-evaluable, it remains unaffected and no error is thrown

Parameters

request

the request of the primitive in which the evaluation should happen

index

the index of the argument being evalued in the aforementioned primitive

Constructors

Link copied to clipboard
constructor(request: Solve.Request<E>, index: Int? = null)

Functions

Link copied to clipboard
open override fun defaultValue(term: Term): Term
Link copied to clipboard
open override fun unevaluable(struct: Struct): Term

Called when struct matches no LogicFunction in loadedFunctions; by default raises a TypeError (TypeError.Expected.EVALUABLE). Overridden by ExpressionReducer to leave non-evaluable sub-terms untouched instead of failing.

Link copied to clipboard
open override fun visitAtom(term: Atom): Term
Link copied to clipboard
open fun visitBlock(term: Block): Term
Link copied to clipboard
open fun visitClause(term: Clause): Term
Link copied to clipboard
open fun visitCollection(term: Recursive): Term
Link copied to clipboard
open fun visitCons(term: Cons): Term
Link copied to clipboard
open fun visitConstant(term: Constant): Term
Link copied to clipboard
open fun visitDirective(term: Directive): Term
Link copied to clipboard
open fun visitEmpty(term: Empty): Term
Link copied to clipboard
Link copied to clipboard
open fun visitEmptyList(term: EmptyList): Term
Link copied to clipboard
open fun visitFact(term: Fact): Term
Link copied to clipboard
open override fun visitIndicator(term: Indicator): Term
Link copied to clipboard
open fun visitInteger(term: Integer): Term
Link copied to clipboard
open fun visitList(term: List): Term
Link copied to clipboard
open fun visitNumeric(term: Numeric): Term
Link copied to clipboard
open fun visitReal(term: Real): Term
Link copied to clipboard
open fun visitRule(term: Rule): Term
Link copied to clipboard
open override fun visitStruct(term: Struct): Term
Link copied to clipboard
open override fun visitTerm(term: Term): Term
Link copied to clipboard
open fun visitTruth(term: Truth): Term
Link copied to clipboard
open fun visitTuple(term: Tuple): Term
Link copied to clipboard
open fun visitVar(term: Var): Term