Gracias a la publicación this me estoy familiarizando con los tipos de métodos dependientes. Tengo una estructura similar a la siguienteMensaje equivalente a los tipos de métodos dependientes
trait Environment{
type Population <: PopulationBase
protected trait PopulationBase
def evolveUs(population: Population): Population
}
object FactoredOut{
def evolvePopulation(env: Environment)(prevPopulation: env.Population): env.Population = {
env.evolveUs(prevPopulation)
}
}
ahora quiero empezar a utilizar actores para difundir el trabajo en la parte FactoredOut
través de un cluster. Para hacer esto, necesito una manera de pasar mensajes inmutables que llevan el Environment
.
Obviamente el siguiente no funciona, pero demuestra lo que estoy tratando de hacer
object Messages{
case class EvolvePopulation(env: Environment)(prevPopulation: env.Population)
}
¿Cuál es la forma correcta de pasar la población y del medio ambiente en todo encierra?
(habría añadido la etiqueta dependiente de tipos de métodos, pero no tienen suficientes puntos para agregar una etiqueta de 'nuevo')
Fantástico, como siempre. No habría seguido esto en absoluto si no hubiera sido por el sistema de tipo inmersión profunda en su curso. – Pengin