Al igual que cualquier otro lenguaje de programación, se manejan tipos de datos que determinan la información que se almacena en las variables y el resultado de las funciones.
Los tipos de datos basicos de haskell son:
Bool (boleano)
El tipo de dato «bool», es el tipo de dato logico, es decir, solo almacena dos posibles valores, cierto y falso
Char (caracter)
Este tipo de dato almacena un solo caracter alfanumerico, es decir del 0 al 9 y de la A a la Z, al igual que en la mayoria de los lenguajes los valores de tipo caracter deben encerrase entre comillas sencillas, por ejemplo: ‘a’ ‘9’
String (cadena de caracteres)
Este tipo de dato almacena una secuencia de caracteres, al igual que en otros lenguajes, los valores para este tipo de dato se deben encerrar entre comillas dobles, por ejemplo: «pedro» «GATO»
Int (enteros de precisión fija)
Se usa para manejar numeros enteros con un valor de 2 elevado a la 32.
Integer (enteros de precisión arbitraria)
Se usa para almacenar numeros mayores al tipo Int, pero desgracidamente no todas las arquitecturas de hardware son capaces de manejarlo.
Float (reales de simple precisión)
Se emplea para manejar valores con decimales, como: 2.5 o 0.0003.
Ahora bien, veamos como incorporar esto a nuestros ejemplos, la definición de variables en haskell es un mapeo de tipos entre el tipo de dato entrante y el tipo de dato del resultado de la función, para esto debemos escribir el nombre de la función seguida de un doble dos puntos.
calculo ::
despues colocaremos el tipo de los parametros de la función seguida del signo -> y despues el tipo de dato del resultado de la función.
calculo :: Int->Int
Recuerde que el nombre de cada tipo de dato se coloca con su primera letra en mayuscula
y en la siguiente linea se coloca la definición de la función, en la siguiente imagen podemos ver varios ejemplos de este tipo de definición
En la imagen tambien podemos ver en funcionamiento las funciones y vemos que tratamos de usar un numero real en un parametro de tipo entero, por lo cual manda un mensaje de error.