En Haskell, los tipos de datos son fundamentales para la programación, ya que permiten definir y manipular datos de manera segura y eficiente. En esta sección, exploraremos los tipos de datos básicos que Haskell ofrece, cómo declararlos y utilizarlos en tus programas.
Contenido
Tipos Numéricos
Haskell soporta varios tipos numéricos, cada uno adecuado para diferentes necesidades:
- Int: Enteros de tamaño fijo.
- Integer: Enteros de tamaño arbitrario.
- Float: Números de punto flotante de precisión simple.
- Double: Números de punto flotante de doble precisión.
Ejemplo de Uso
-- Declaración de variables numéricas myInt :: Int myInt = 42 myInteger :: Integer myInteger = 12345678901234567890 myFloat :: Float myFloat = 3.14 myDouble :: Double myDouble = 2.718281828459045
Explicación
myInt
es un entero de tamaño fijo.myInteger
es un entero de tamaño arbitrario, útil para cálculos que requieren precisión más allá de los límites deInt
.myFloat
ymyDouble
son números de punto flotante, conDouble
ofreciendo mayor precisión.
Booleanos
El tipo Bool
en Haskell representa valores booleanos, que pueden ser True
o False
.
Ejemplo de Uso
-- Declaración de variables booleanas isSunny :: Bool isSunny = True isRaining :: Bool isRaining = False
Explicación
isSunny
yisRaining
son variables booleanas que pueden serTrue
oFalse
.
Caracteres y Cadenas
Haskell utiliza el tipo Char
para representar caracteres individuales y el tipo [Char]
o String
para representar cadenas de texto.
Ejemplo de Uso
-- Declaración de caracteres y cadenas myChar :: Char myChar = 'A' myString :: String myString = "Hello, Haskell!"
Explicación
myChar
es un carácter individual.myString
es una cadena de texto, que en Haskell es una lista de caracteres ([Char]
).
Tuplas
Las tuplas son estructuras de datos que pueden contener múltiples valores de diferentes tipos. Se definen utilizando paréntesis y comas.
Ejemplo de Uso
Explicación
myTuple
es una tupla que contiene un entero, una cadena y un booleano.
Listas
Las listas en Haskell son colecciones de elementos del mismo tipo. Se definen utilizando corchetes y comas.
Ejemplo de Uso
-- Declaración de listas myList :: [Int] myList = [1, 2, 3, 4, 5] myStringList :: [String] myStringList = ["Hello", "World"]
Explicación
myList
es una lista de enteros.myStringList
es una lista de cadenas de texto.
Ejercicios Prácticos
Ejercicio 1: Declaración de Variables
Declara una variable de cada tipo básico que hemos visto (Int, Integer, Float, Double, Bool, Char, String, Tupla, Lista).
Ejercicio 2: Operaciones Básicas
Escribe una función que tome dos enteros y devuelva su suma, resta, multiplicación y división.
Ejercicio 3: Manipulación de Listas
Escribe una función que tome una lista de enteros y devuelva la lista con cada elemento incrementado en 1.
Soluciones
Solución Ejercicio 1
-- Declaración de variables myInt :: Int myInt = 10 myInteger :: Integer myInteger = 1000000000000 myFloat :: Float myFloat = 3.14 myDouble :: Double myDouble = 2.71828 myBool :: Bool myBool = True myChar :: Char myChar = 'H' myString :: String myString = "Haskell" myTuple :: (Int, String, Bool) myTuple = (42, "Answer", True) myList :: [Int] myList = [1, 2, 3, 4, 5]
Solución Ejercicio 2
-- Operaciones básicas basicOperations :: Int -> Int -> (Int, Int, Int, Float) basicOperations x y = (x + y, x - y, x * y, fromIntegral x / fromIntegral y)
Solución Ejercicio 3
-- Incrementar elementos de una lista incrementList :: [Int] -> [Int] incrementList xs = [x + 1 | x <- xs]
Conclusión
En esta sección, hemos cubierto los tipos de datos básicos en Haskell, incluyendo tipos numéricos, booleanos, caracteres, cadenas, tuplas y listas. Estos tipos son fundamentales para cualquier programa en Haskell y proporcionan una base sólida para construir aplicaciones más complejas. En la próxima sección, exploraremos cómo utilizar variables y funciones en Haskell.
Curso de Programación en Haskell
Módulo 1: Introducción a Haskell
- ¿Qué es Haskell?
- Configuración del Entorno de Haskell
- Sintaxis Básica y Hola Mundo
- Haskell REPL (GHCi)