He oído que Scala tiene tipos dependientes de la ruta. Tiene algo que ver con las clases internas, pero ¿qué significa esto realmente y por qué me importa?
scala
type-systems
path-dependent-type
oxbow_lakes
fuente
fuente

Respuestas:
Mi ejemplo favorito:
Entonces, el tipo de
Coordinatedepende de la instancia de laBoardque se instancia. Hay todo tipo de cosas que se pueden lograr con esto, dando una especie de seguridad de tipo que depende de los valores y no solo de los tipos.Esto puede sonar como tipos dependientes, pero es más limitado. Por ejemplo, el tipo de
occupieddepende del valor deBoard. Arriba, la última línea no funciona porque el tipo dec2esb2.Coordinate, mientras queoccupiedel tipo esSet[b1.Coordinate]. Tenga en cuenta que se puede usar otro identificador con el mismo tipo deb1, por lo que no es el identificadorb1asociado con el tipo. Por ejemplo, lo siguiente funciona:fuente