it.unibo.tuprolog.solve.function

package it.unibo.tuprolog.solve.function

Classes

Name Description
abstract class AbstractEvaluator<E : ExecutionContext, T : Term> : TermVisitor<T>, Any
class ArithmeticEvaluator<E : ExecutionContext> : AbstractEvaluator<E, Numeric>

Evaluates an expression as a Numeric term. Throws a TypeError in case a non-evaluable sub-term is met. Throws a TypeError in case the evaluation produces a non-numeric term.

abstract class BinaryMathFunction: MathFunction

Base class to implement unary math functions

sealed class Compute: Any

A base class for Computation requests and responses

class ExpressionEvaluator<E : ExecutionContext> : AbstractEvaluator<E, Term>

Evaluates a Term as an expression, w.r.t. the loaded functions provided through request. Throws a TypeError in case a non-evaluable sub-term is met.

class ExpressionReducer<E : ExecutionContext> : 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

abstract class FunctionWrapper<C : ExecutionContext> : AbstractWrapper<LogicFunction>

A class wrapping a LogicFunction implementation

abstract class IntegersBinaryMathFunction: BinaryMathFunction

Base class to implement math functions accepting only integers

interface LogicFunction: Any
abstract class MathFunction: FunctionWrapper<ExecutionContext>

Base class to implement arithmetic functions

abstract class NullaryMathFunction: MathFunction

Base class to implement nullary math functions (with no arguments)

abstract class UnaryMathFunction: MathFunction

Base class to implement unary math functions

Methods

evalAsExpression

fun Term.evalAsExpression(request: Request<*>, index: Int?): Term

Receiver

Name Description
Term

Parameters

Name Description
request: Request<*>
index: Int?

ReturnValue

Name Description
Term

evalAsArithmeticExpression

fun Term.evalAsArithmeticExpression(request: Request<*>, index: Int?): Numeric

Receiver

Name Description
Term

Parameters

Name Description
request: Request<*>
index: Int?

ReturnValue

Name Description
Numeric

<no name provided>

fun <no name provided>()

A typealias for a prolog function that accepts a Compute.Request and returns a Compute.Response

ReturnValue

Name Description
Unit