Hullaballoonatic
09/08/2018, 5:37 PMkarelpeeters
09/08/2018, 5:39 PMHullaballoonatic
09/08/2018, 5:40 PMkarelpeeters
09/08/2018, 5:42 PMHullaballoonatic
09/08/2018, 5:46 PMkarelpeeters
09/08/2018, 5:51 PMComparator<T>
and an add: (T, T) -> T
.Hullaballoonatic
09/08/2018, 5:53 PMinferred type Pos is not a subtype of IxState<*, Comparable<Any>>
Pos
extends this: IxState<Pair<Float, Float>, Float>
Comparable<*>
karelpeeters
09/08/2018, 6:03 PMHullaballoonatic
09/08/2018, 6:04 PMval searcher = UniformCostSearch(PosComparator(), CostComparator())
class UniformCostSearch<D: Any, C: Comparable<*>>(
dataComp: Comparator<State<D, C>>,
costComp: Comparator<State<D, C>>
)
class PosComparator : Comparator<Pos>
open class Pos: State<Pair<Float, Float>, Float>
PosComparator()
as dataComp
in UniformCostSearch
Type mismatch.
Required:
kotlin.Comparator<State<???, ???>> /* = java.util.Comparator<State<???, ???>> */
Found:
PosComparator
Type inference failed:
constructor UniformCostSearch<D : Any, C : Comparable<*>>
(
dataComp: kotlin.Comparator<State<D, C>> /* = java.util.Comparator<State<D, C>> */,
costComp: kotlin.Comparator<State<D, C>> /* = java.util.Comparator<State<D, C>> */
)
cannot be applied to
(
PosComparator,
CostComparator
)
karelpeeters
09/08/2018, 6:14 PMPosComparator
can compare Pos
instances, and Pos
instances are also State<Pair<Float, Float>, Float>
instances.State<Pair<Float, Float>, Float>
is also a Pos
.UniformCostSearch
would need a Comparator<State<Pair<Float, Float>, Float>>
here, but you only provide a Comparator<Pos>
.Hullaballoonatic
09/08/2018, 6:18 PMkarelpeeters
09/08/2018, 6:21 PMclass UniformCostSearch<S>(
dataComp: Comparator<S>,
costComp: Comparator<S>
)
Hullaballoonatic
09/08/2018, 6:21 PMkarelpeeters
09/08/2018, 6:21 PMHullaballoonatic
09/08/2018, 6:22 PMkarelpeeters
09/08/2018, 6:22 PMHullaballoonatic
09/08/2018, 6:23 PMkarelpeeters
09/08/2018, 6:31 PMinterface State<D, C>
val searcher = UniformCostSearch(PosComparator(), PosComparator())
class UniformCostSearch<S>(
dataComp: Comparator<S>,
costComp: Comparator<S>
)
class PosComparator : Comparator<Pos> {
override fun compare(a: Pos, b: Pos) = 0
}
open class Pos: State<Pair<Float, Float>, Float>
Hullaballoonatic
09/08/2018, 6:32 PM