
commonMain.it.unibo.tuprolog.solve.classic.SolutionIterator.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of solve-classic-metadata Show documentation
Show all versions of solve-classic-metadata Show documentation
Stable, state-machine-based implementation of Prolog's SLDNF resolution principle
package it.unibo.tuprolog.solve.classic
import it.unibo.tuprolog.solve.Solution
import it.unibo.tuprolog.solve.classic.fsm.State
import it.unibo.tuprolog.solve.classic.impl.SimpleSolutionIterator
import kotlin.js.JsName
import kotlin.jvm.JvmStatic
interface SolutionIterator : Iterator {
@JsName("state")
val state: State
@JsName("step")
val step: Long
override fun hasNext(): Boolean
override fun next(): Solution
@JsName("onStateTransition")
fun onStateTransition(source: State, destination: State, index: Long)
companion object {
@JsName("of")
@JvmStatic
fun of(
initialState: State,
onStateTransition: (State, State, Long) -> Unit = { _, _, _ -> }
): SolutionIterator = SimpleSolutionIterator(initialState, onStateTransition)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy