Pregunta

Sentado con el error siguiente:

TestCaseGenerator.scala:47: error: type mismatch;
 found   : List[(State, Seq.Projection[State])]
 required: Seq[(State, Set[State])]
    new LTS(Map(rndTrans: _*), Map(rndLabeling: _*))
                ^
one error found

No se puede averiguar qué hacer al respecto.

El rndTrans se inicializa como sigue:

val rndTrans = for (s <- (0 to nStates).toList)
                   yield (new State(s) -> (for (s2 <- 0 to nStates
                       if prob(trans_probability))
                           yield new State(s2)))

Actualización: Me sucede utilizar la versión 2.7

.
¿Fue útil?

Solución

Cuando un método toSet (o toMap) no está disponible (debido a que uno se está ejecutando una versión anterior de Scala o porque la conversión es simplemente no implementado), uno puede a menudo se aplica uno de los siguientes esquemas.

val collection: Seq[SomeType] = ...

Set( collection: _* )

o

Set() ++ collection

La primera versión utiliza el :_* para convertir la colección a un argumento secuencia y luego llama a un método constructor del nuevo tipo de colección. El segundo método crea una colección vacía del nuevo tipo y luego añade (++) la antigua colección a la misma.

Otros consejos

En general, un Seq no es un Set. Trate de convertir la secuencia de valores a un conjunto.

val rndTrans = for (s <- (0 to nStates).toList)
                   yield (new State(s) -> (for (s2 <- 0 to nStates
                       if prob(trans_probability))
                           yield new State(s2)).toSet)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top