MagicTerm

interface MagicTerm : Term

Properties

Link copied to clipboard
open val isAtom: Boolean
Link copied to clipboard
open val isBlock: Boolean
Link copied to clipboard
open val isClause: Boolean
Link copied to clipboard
open val isCons: Boolean
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open val isFact: Boolean
Link copied to clipboard
open val isFail: Boolean
Link copied to clipboard
open val isGround: Boolean
Link copied to clipboard
Link copied to clipboard
open val isInteger: Boolean
Link copied to clipboard
open val isList: Boolean
Link copied to clipboard
open val isNumber: Boolean
Link copied to clipboard
open val isReal: Boolean
Link copied to clipboard
Link copied to clipboard
open val isRule: Boolean
Link copied to clipboard
open val isStruct: Boolean
Link copied to clipboard
open val isTrue: Boolean
Link copied to clipboard
open val isTruth: Boolean
Link copied to clipboard
open val isTuple: Boolean
Link copied to clipboard
open val isVar: Boolean
Link copied to clipboard
abstract val tags: Map<String, Any>
Link copied to clipboard
abstract val variables: Sequence<Var>

Functions

Link copied to clipboard
abstract fun <T> accept(visitor: TermVisitor<T>): T
Link copied to clipboard
abstract fun apply(substitution: Substitution): Term
open fun apply(substitution: Substitution, vararg substitutions: Substitution): Term
Link copied to clipboard
open override fun <T : Term> as(): T?
Link copied to clipboard
open fun asAtom(): Atom?
Link copied to clipboard
open fun asBlock(): Block?
Link copied to clipboard
open fun asClause(): Clause?
Link copied to clipboard
open fun asCons(): Cons?
Link copied to clipboard
open fun asConstant(): Constant?
Link copied to clipboard
open fun asDirective(): Directive?
Link copied to clipboard
Link copied to clipboard
open fun asEmptyList(): EmptyList?
Link copied to clipboard
open fun asFact(): Fact?
Link copied to clipboard
open fun asIndicator(): Indicator?
Link copied to clipboard
open fun asInteger(): Integer?
Link copied to clipboard
open fun asList(): List?
Link copied to clipboard
open fun asNumeric(): Numeric?
Link copied to clipboard
open fun asReal(): Real?
Link copied to clipboard
open fun asRecursive(): Recursive?
Link copied to clipboard
open fun asRule(): Rule?
Link copied to clipboard
open fun asStruct(): Struct?
Link copied to clipboard
open fun asTerm(): Term
Link copied to clipboard
open fun asTruth(): Truth?
Link copied to clipboard
open fun asTuple(): Tuple?
Link copied to clipboard
open fun asVar(): Var?
Link copied to clipboard
open override fun <T : Term> castTo(): T
Link copied to clipboard
open fun castToAtom(): Atom
Link copied to clipboard
open fun castToBlock(): Block
Link copied to clipboard
open fun castToClause(): Clause
Link copied to clipboard
open fun castToCons(): Cons
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open fun castToFact(): Fact
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open fun castToList(): List
Link copied to clipboard
Link copied to clipboard
open fun castToReal(): Real
Link copied to clipboard
Link copied to clipboard
open fun castToRule(): Rule
Link copied to clipboard
open fun castToStruct(): Struct
Link copied to clipboard
open fun castToTerm(): Term
Link copied to clipboard
open fun castToTruth(): Truth
Link copied to clipboard
open fun castToTuple(): Tuple
Link copied to clipboard
open fun castToVar(): Var
Link copied to clipboard
open operator override fun compareTo(other: Term): Int
Link copied to clipboard
open fun containsTag(name: String): Boolean
Link copied to clipboard
abstract operator override fun equals(other: Any?): Boolean
abstract fun equals(other: Term, useVarCompleteName: Boolean): Boolean
Link copied to clipboard
fun Term.evalAsArithmeticExpression(request: Solve.Request<*>, index: Int? = null): Numeric

Evaluates this Term as a full arithmetic expression (as is/2 does), via ArithmeticEvaluator, producing a Numeric result or raising an error if any sub-term is not evaluable, or does not evaluate to a number. index is used only to enrich thrown errors, identifying which argument of request this term came from.

Link copied to clipboard
fun Term.evalAsExpression(request: Solve.Request<*>, index: Int? = null): Term

Evaluates this Term as an expression against request's context-loaded functions, reducing evaluable sub-terms in place via ExpressionEvaluator; a non-evaluable sub-term raises a it.unibo.tuprolog.solve.exception.error.TypeError. index is used only to enrich that error, identifying which argument of request this term came from.

Link copied to clipboard
abstract fun freshCopy(): Term
abstract fun freshCopy(scope: Scope): Term
Link copied to clipboard
open operator fun get(substitution: Substitution, vararg substitutions: Substitution): Term
Link copied to clipboard
open fun <T : Any> getTag(name: String): T?
Link copied to clipboard
abstract override fun hashCode(): Int
Link copied to clipboard
abstract fun replaceTags(tags: Map<String, Any>): Term
Link copied to clipboard
abstract infix fun structurallyEquals(other: Term): Boolean
Link copied to clipboard
abstract override fun toString(): String