Fields
Name | Description |
---|---|
abstract head: Struct
|
|
open isRule: Boolean
|
Checks whether the current term is a rule, or a fact.
This method is guaranteed to return |
open isFact: Boolean
|
Checks whether the current term is a fact.
This method is guaranteed to return |
open isDirective: Boolean
|
Checks whether the current term is a directive.
This method is guaranteed to return |
abstract headArgs: Iterable<Term>
|
|
abstract headArity: Int
|
Methods
freshCopy
abstract fun freshCopy(): Rule
ReturnValue
Name | Description |
---|---|
Rule
|
a fresh copy of the current term which is different because variables are consistently renamed |
freshCopy
abstract fun freshCopy(scope: Scope): Rule
Returns a fresh copy of this Term, similarly to freshCopy
, possibly reusing variables from the provided scope,
if any
Parameters
Name | Description |
---|---|
scope: Scope
|
the Scope containing variables to be used in copying |
ReturnValue
Name | Description |
---|---|
Rule
|
a fresh copy of the current term which is different because variables are consistently renamed |
asRule
open fun asRule(): Rule
getHeadArg
abstract fun getHeadArg(index: Int): Term
Parameters
Name | Description |
---|---|
index: Int
|
ReturnValue
Name | Description |
---|---|
Term
|
setBody
abstract fun setBody(body: Term): Rule
Parameters
Name | Description |
---|---|
body: Term
|
ReturnValue
Name | Description |
---|---|
Rule
|
setHeadFunctor
abstract fun setHeadFunctor(functor: String): Rule
Parameters
Name | Description |
---|---|
functor: String
|
ReturnValue
Name | Description |
---|---|
Rule
|
setHeadArgs
abstract fun setHeadArgs(vararg arguments: Term): Rule
Parameters
Name | Description |
---|---|
vararg arguments: Term
|
ReturnValue
Name | Description |
---|---|
Rule
|
setHeadArgs
abstract fun setHeadArgs(arguments: Iterable<Term>): Rule
Parameters
Name | Description |
---|---|
arguments: Iterable<Term>
|
ReturnValue
Name | Description |
---|---|
Rule
|
setHeadArgs
abstract fun setHeadArgs(arguments: Sequence
Parameters
Name | Description |
---|---|
arguments: Sequence
|
ReturnValue
Name | Description |
---|---|
Rule
|
insertHeadArg
abstract fun insertHeadArg(index: Int, argument: Term): Rule
Parameters
Name | Description |
---|---|
index: Int
|
|
argument: Term
|
ReturnValue
Name | Description |
---|---|
Rule
|
addFirstHeadArg
abstract fun addFirstHeadArg(argument: Term): Rule
Parameters
Name | Description |
---|---|
argument: Term
|
ReturnValue
Name | Description |
---|---|
Rule
|
addLastHeadArg
abstract fun addLastHeadArg(argument: Term): Rule
Parameters
Name | Description |
---|---|
argument: Term
|
ReturnValue
Name | Description |
---|---|
Rule
|
appendHeadArg
abstract fun appendHeadArg(argument: Term): Rule
Parameters
Name | Description |
---|---|
argument: Term
|
ReturnValue
Name | Description |
---|---|
Rule
|
setBodyItems
abstract fun setBodyItems(argument: Term, vararg arguments: Term): Rule
ReturnValue
Name | Description |
---|---|
Rule
|
setBodyItems
abstract fun setBodyItems(arguments: Iterable<Term>): Rule
Parameters
Name | Description |
---|---|
arguments: Iterable<Term>
|
ReturnValue
Name | Description |
---|---|
Rule
|
setBodyItems
abstract fun setBodyItems(arguments: Sequence
Parameters
Name | Description |
---|---|
arguments: Sequence
|
ReturnValue
Name | Description |
---|---|
Rule
|
insertBodyItem
abstract fun insertBodyItem(index: Int, argument: Term): Rule
Parameters
Name | Description |
---|---|
index: Int
|
|
argument: Term
|
ReturnValue
Name | Description |
---|---|
Rule
|
addFirstBodyItem
abstract fun addFirstBodyItem(argument: Term): Rule
Parameters
Name | Description |
---|---|
argument: Term
|
ReturnValue
Name | Description |
---|---|
Rule
|
Extensions
prepareForExecution
fun Clause.prepareForExecution(): Clause
Prepares the receiver Clause for execution, using the provided visitor
For example, the Clause product(A) :- A, A
is transformed, after preparation for execution,
as the Term: product(A) :- call(A), call(A)
Receiver
Name | Description |
---|---|
Clause
|
ReturnValue
Name | Description |
---|---|
Clause
|
prepareForExecution
fun Clause.prepareForExecution(unifier: Unifier): Clause
Receiver
Name | Description |
---|---|
Clause
|
Parameters
Name | Description |
---|---|
unifier: Unifier
|
ReturnValue
Name | Description |
---|---|
Clause
|
toClause
fun Term.toClause(source: Any?, line: Int, column: Int): Clause
Receiver
Name | Description |
---|---|
Term
|
Parameters
Name | Description |
---|---|
source: Any?
|
|
line: Int
|
|
column: Int
|
ReturnValue
Name | Description |
---|---|
Clause
|
unfoldGoals
fun Term.unfoldGoals(): Sequence
Receiver
Name | Description |
---|---|
Term
|
ReturnValue
Name | Description |
---|---|
Sequence
|
toGoals
fun Term.toGoals(): Cursor
Receiver
Name | Description |
---|---|
Term
|
ReturnValue
Name | Description |
---|---|
Cursor
|
isWellFormed
fun Term.isWellFormed(): Boolean
Check whether the receiver term is a well-formed predication
Receiver
Name | Description |
---|---|
Term
|
ReturnValue
Name | Description |
---|---|
Boolean
|
prepareForExecutionAsGoal
fun Term.prepareForExecutionAsGoal(): Struct
Prepares the receiver Goal for execution
For example, the goal A
is transformed, after preparation for execution, as the Term: call(A)
Receiver
Name | Description |
---|---|
Term
|
ReturnValue
Name | Description |
---|---|
Struct
|
extractSignature
fun Struct.extractSignature(): Signature
Receiver
Name | Description |
---|---|
Struct
|
ReturnValue
Name | Description |
---|---|
Signature
|
evalAsExpression
fun Term.evalAsExpression(request: Request<*>, index: Int?): Term
Receiver
Name | Description |
---|---|
Term
|
Parameters
Name | Description |
---|---|
request: Request<*>
|
|
index: Int?
|
ReturnValue
Name | Description |
---|---|
Term
|
CompanionObject
Rule
Fields
Name | Description |
---|---|
const FUNCTOR: String
|
Returns a fresh copy of this Term, that is, an instance of Term which is equal to the current one in any aspect, except variables directly or indirectly contained into this Term, which are refreshed. This means that it could return itself, if no variable is present (ground term), or a new Term with freshly generated variables.
Variables are refreshed consistently, meaning that, if more variables exists within this Term having the same name, all fresh copies of such variables will have the same complete name.
Example: "f(X, g(X))".freshCopy() returns something like "f(X_1, g(X_1))" instead of "f(X_1, g(X_2))"
Notice that, if the current term is ground, the same object may be returned as a result by this method.