Checkpoint
This commit is contained in:
parent
e3c84e1761
commit
e73e5cbfc8
32 changed files with 1354 additions and 92 deletions
|
@ -1,21 +1,16 @@
|
|||
package prolog.ast.terms
|
||||
|
||||
import prolog.ast.logic.Provable
|
||||
import prolog.logic.Substituted
|
||||
typealias Operand = Term
|
||||
|
||||
abstract class Operator(
|
||||
private val symbol: Atom,
|
||||
val leftOperand: Operand? = null,
|
||||
val rightOperand: Operand
|
||||
) : CompoundTerm(symbol, listOfNotNull(leftOperand, rightOperand)), Provable {
|
||||
abstract override fun prove(subs: Substituted): Sequence<Substituted>
|
||||
|
||||
private val leftOperand: Operand? = null,
|
||||
private val rightOperand: Operand
|
||||
) : CompoundTerm(symbol, listOfNotNull(leftOperand, rightOperand)) {
|
||||
override fun toString(): String {
|
||||
return when (leftOperand) {
|
||||
null -> "${symbol.name} $rightOperand"
|
||||
else -> "$leftOperand ${symbol.name} $rightOperand"
|
||||
else -> "($leftOperand ${symbol.name} $rightOperand)"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
typealias Operand = Goal
|
||||
|
|
Reference in a new issue