Checkpoint

This commit is contained in:
Tibo De Peuter 2025-04-06 14:42:57 +02:00
parent ef8b82457c
commit d702b9b081
Signed by: tdpeuter
GPG key ID: 38297DE43F75FFE2
13 changed files with 114 additions and 63 deletions

View file

@ -1,15 +1,16 @@
package prolog.components.terms
import prolog.Substitution
import prolog.components.Resolvent
import prolog.unify
import prolog.unifyLazy
typealias Argument = Term
open class Structure(val name: Atom, val arguments: List<Argument>): Goal(), Head, Body, Resolvent {
override val functor: Functor = "${name.name}/${arguments.size}"
override fun solve(goal: Goal): Boolean {
return unify(goal, this).isEmpty
override fun solve(goal: Goal): Sequence<Substitution> {
return unifyLazy(goal, this)
}
override fun toString(): String {