Checkpoint
This commit is contained in:
parent
39c3af4ba5
commit
da21d890fb
39 changed files with 1166 additions and 48 deletions
17
src/prolog/components/terms/Structure.kt
Normal file
17
src/prolog/components/terms/Structure.kt
Normal file
|
@ -0,0 +1,17 @@
|
|||
package prolog.components.terms
|
||||
|
||||
import prolog.components.Functor
|
||||
import prolog.components.Goal
|
||||
|
||||
open class Structure(val name: Atom, val arguments: List<Argument>): Head(), Term, Goal {
|
||||
override val functor: Functor = Functor(name, arguments.size)
|
||||
|
||||
override fun toString(): String {
|
||||
return when {
|
||||
arguments.isEmpty() -> name.name
|
||||
else -> "${name.name}(${arguments.joinToString(", ")})"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
typealias CompoundTerm = Structure
|
Reference in a new issue