All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.it.unibo.tuprolog.solve.classic.SolutionIterator.kt Maven / Gradle / Ivy

There is a newer version: 0.17.4
Show newest version
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