2011-09-09 10 views
27

Al bucear más profundamente en Scala llegué al término tipo clase. Ha sido confuso porque una clase es un tipo y un tipo podría ser ser una clase en Scala y "tipo" y "clase" son en sí mismos términos abstractos.¿Por qué una "clase de tipo" se llama "clase de tipo"?

Después de leer algunos ejemplos Tengo la sensación de lo que es un tipo de clase podría ser, pero tal vez hay un enfoque más fácil conseguir un gancho mentales (imagen, concepto) a lo que es una clase de tipo es por explicar por qué tenía sido nombrado así.

Respuesta

27

En Haskell no hay clases en Java/Scala sentido, por lo que este término fue libre de ser utilizado (en el sentido de "clase de tipos", como dice Johannes Weiß).

No se utiliza en la documentación oficial de Scala, pero las personas que provienen de Haskell descubrieron que podían emular las clases de tipo Haskell en Scala y reutilizar el nombre.

+0

Gracias, ahora esto [respuesta a una convención de nomenclatura de clase de tipo en scala] (http://stackoverflow.com/questions/7084090/naming-convention-for-typeclasses-in-scala/7084305#7084305) hace mucho más sentido :-) – Lutz

+2

Además, "clase de tipos" está usando el término más o menos en [este sentido] (http://en.wikipedia.org/wiki/Class_ (set_theory% 29). De hecho, 'UndecidableInstances' de GHC la extensión hace que sea muy posible codificar las clases * apropiadas *, y luego proceder a, er, tratarlas como conjuntos. –

18

Porque clasifica (en conjunto) tipos "que tienen" un conjunto común de operaciones definidas por la clase de tipo?

Se siente muy natural para mí.

Cuestiones relacionadas