Translate
sábado, 11 de abril de 2020
Tipos en Haskell parte 2
Seguimos con los tipos en Haskell : https://emanuelpeg.blogspot.com/2020/04/tipos-en-haskell.html
Me quedaron 2 post cortitos, medio que podría haber hecho 1, cosas que pasan.
En la definición de una función se puede incluir información de tipo mediante una expresión de la forma A::B para indicar al sistema que “A es de tipo B”. Por ejemplo:
cuadrado:: Int -> Int //no es necesario, pero es buena práctica
cuadrado x = x * x
La primera línea indica que la función cuadrado es del tipo "función que toma un entero y devuelve un entero".
Esto no es obligatorio dado que con la inferencia de tipos, haskell puede inferir esto. Pero, sí es una buena práctica, ya que el Haskell chequea que el tipo declarado coincide que el tipo inferido por el sistema a partir de la definición, permitiendo detectar errores de tipos.
Existen varios “tipos” predefinidos del sistema Haskell, éstos se podrían clasificar en: tipos básicos,
cuyos valores se toman como primitivos, por ejemplo, Enteros, Flotantes, Caracteres y Booleanos; y
tipos compuestos, cuyos valores se construyen utilizando otros tipos, por ejemplo, listas, funciones y
tuplas.