Professional Documents
Culture Documents
Conceptos Fundamentales
Enero-Junio 2014 MTI. Rosa Imelda Garca Chi
Programacin Lgica y Funcional MTI. Rosa Imelda Garca Chi
Haskell y otros lenguajes funcionales utilizan el sistema de tipos de Milner que tienen dos caractersticas fundamentales:
Polimorfismo
Un programa bien tipado puede incluir definiciones de funciones polimrficas.
El polimorfismo permite que una misma funcin se pueda aplicar a parmetros de diferentes tipos, dependiendo del contexto en el quela funcin se utilice.
Programacin Lgica y Funcional MTI. Rosa Imelda Garca Chi
Inferencia de tipos
El ejemplo motiva que al formular reglas de inferencia de tipos es necesario indicar explcitamente (por medio de una cuantificacin universal) aquellos parmetros de un tipo que se pueden particularizar reemplazndolos por tipos concretos cualesquiera.
Con esta motivacin, se distinguir entre los tipos simples y los tipos genricos que incluyen parmetros cuantificados universalmente.
Intuitivamente, el primero de los tres tipos anteriores es ms general que los otros dos. Para precisar cuando se considera que un tipo es ms general que otro, damos las siguiente definicin:
Subclase y herencia
Los ejemplos muestran que un tipo cualificado puede tener algunos parmetros completamente genricos y otros restringidos de manera que solo se pueden sustituir por ejemplares de ciertas clases de tipos.