pokemon - types traduccion
¿Qué es un tipo de "primera clase"? (3)
Creo que un tipo de primera clase es casi lo mismo que un objeto de primera clase . Es básicamente el tipo que proporciona las propiedades de un objeto de primera clase.
¿Qué significa que un tipo T sea un tipo de "Primera clase"?
El uso de "T" hace que parezca que tal vez alguien estaba hablando sobre el estado de los genéricos en Java (se borran, lo que significa que si bien puede verificar si algo es una Lista en tiempo de ejecución, no puede verificar si es una Lista de Entero).
Sin embargo, también hay "tipos de primera clase", lo que significa que los tipos en sí mismos (no solo las instancias de ellos) pueden aparecer en cualquier lugar, como el valor de una expresión. Por ejemplo, fragmentos de código como
someType s = new someType();
new typeOf(s); // makes a new instance of someType
Pero eso no se ve demasiado en la naturaleza, ya que si sus tipos dependen de un valor, la verificación de tipos requiere más cómputo, y si permite que los tipos dependan de cualquier valor, la verificación se vuelve indecidible.
Usualmente significa que instancias de T pueden ser
- devuelto de funciones
- pasó a funciones
- construido en tiempo de ejecución
Por ejemplo, las funciones en C no son tipos de primera clase ya que no pueden construirse en tiempo de ejecución, pero están en JavaScript.
En algunas circunstancias especializadas, por ejemplo, la prueba de teoremas, significa que los tipos en sí mismos son objetos de primera clase. La literatura más moderna utiliza ''tipos reificados'' en lugar de denotar esto para evitar tal ambigüedad.