Succ operator
This commit is contained in:
parent
cdf2513e96
commit
6b46965435
2 changed files with 6 additions and 0 deletions
|
@ -91,6 +91,7 @@ open class Preprocessor {
|
||||||
term.functor == "*/2" && args.all { it is Expression } -> Multiply(args[0] as Expression, args[1] as Expression)
|
term.functor == "*/2" && args.all { it is Expression } -> Multiply(args[0] as Expression, args[1] as Expression)
|
||||||
term.functor == "//2" && args.all { it is Expression } -> Divide(args[0] as Expression, args[1] as Expression)
|
term.functor == "//2" && args.all { it is Expression } -> Divide(args[0] as Expression, args[1] as Expression)
|
||||||
term.functor == "between/3" && args.all { it is Expression } -> Between(args[0] as Expression, args[1] as Expression, args[2] as Expression)
|
term.functor == "between/3" && args.all { it is Expression } -> Between(args[0] as Expression, args[1] as Expression, args[2] as Expression)
|
||||||
|
term.functor == "succ/2" && args.all { it is Expression } -> Successor(args[0] as Expression, args[1] as Expression)
|
||||||
|
|
||||||
// Database
|
// Database
|
||||||
term.functor == "dynamic/1" -> Dynamic((args[0] as Atom).name)
|
term.functor == "dynamic/1" -> Dynamic((args[0] as Atom).name)
|
||||||
|
|
|
@ -208,3 +208,8 @@ class Between(private val expr1: Expression, private val expr2: Expression, priv
|
||||||
|
|
||||||
override fun toString(): String = "$expr1..$expr3..$expr2"
|
override fun toString(): String = "$expr1..$expr3..$expr2"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class Successor(private val expr1: Expression, private val expr2: Expression) :
|
||||||
|
CompoundTerm(Atom("succ"), listOf(expr1, expr2)), Satisfiable {
|
||||||
|
override fun satisfy(subs: Substitutions): Answers = succ(expr1, expr2, subs)
|
||||||
|
}
|
||||||
|
|
Reference in a new issue