En este tema, aprenderemos sobre dos estructuras de datos fundamentales en Haskell: las listas y las tuplas. Estas estructuras son esenciales para manejar colecciones de datos y son ampliamente utilizadas en la programación funcional.
Listas
Las listas en Haskell son colecciones ordenadas de elementos del mismo tipo. Son una de las estructuras de datos más comunes y versátiles en Haskell.
Creación de Listas
Puedes crear listas de varias maneras:
-- Lista vacía emptyList = [] -- Lista de números numbers = [1, 2, 3, 4, 5] -- Lista de caracteres (cadena de texto) hello = ['H', 'e', 'l', 'l', 'o']
Operaciones Básicas con Listas
Acceso a Elementos
Puedes acceder a los elementos de una lista usando el operador !!
:
-- Acceder al primer elemento (índice 0) firstElement = numbers !! 0 -- Resultado: 1 -- Acceder al tercer elemento (índice 2) thirdElement = numbers !! 2 -- Resultado: 3
Concatenación de Listas
Puedes concatenar dos listas usando el operador ++
:
Agregar Elementos
Puedes agregar un elemento al inicio de una lista usando el operador :
(cons):
Funciones Comunes para Listas
Haskell proporciona muchas funciones útiles para trabajar con listas. Aquí hay algunas de las más comunes:
head
: Devuelve el primer elemento de una lista.tail
: Devuelve la lista sin el primer elemento.length
: Devuelve la longitud de una lista.null
: Verifica si una lista está vacía.reverse
: Invierte una lista.
-- Ejemplos de uso first = head numbers -- Resultado: 1 rest = tail numbers -- Resultado: [2, 3, 4, 5] len = length numbers -- Resultado: 5 isEmpty = null numbers -- Resultado: False reversed = reverse numbers -- Resultado: [5, 4, 3, 2, 1]
Tuplas
Las tuplas son colecciones de un número fijo de elementos, que pueden ser de diferentes tipos. A diferencia de las listas, las tuplas no tienen que ser homogéneas.
Creación de Tuplas
Puedes crear tuplas simplemente agrupando elementos entre paréntesis:
Acceso a Elementos de Tuplas
Para acceder a los elementos de una tupla, puedes usar patrones de coincidencia:
-- Desempaquetar una tupla de dos elementos (a, b) = pair -- a = 1, b = "one" -- Desempaquetar una tupla de tres elementos (x, y, z) = triple -- x = 1, y = "one", z = True
Funciones Comunes para Tuplas
Haskell proporciona algunas funciones útiles para trabajar con tuplas, especialmente para tuplas de dos elementos:
fst
: Devuelve el primer elemento de una tupla de dos elementos.snd
: Devuelve el segundo elemento de una tupla de dos elementos.
-- Ejemplos de uso firstElement = fst pair -- Resultado: 1 secondElement = snd pair -- Resultado: "one"
Ejercicios Prácticos
Ejercicio 1: Manipulación de Listas
Escribe una función sumFirstTwo
que tome una lista de números y devuelva la suma de los dos primeros elementos. Si la lista tiene menos de dos elementos, la función debe devolver 0.
Ejercicio 2: Manipulación de Tuplas
Escribe una función swap
que tome una tupla de dos elementos y devuelva una nueva tupla con los elementos intercambiados.
Soluciones
Solución al Ejercicio 1
Solución al Ejercicio 2
Conclusión
En esta sección, hemos aprendido sobre las listas y las tuplas en Haskell, dos estructuras de datos fundamentales. Las listas son colecciones ordenadas de elementos del mismo tipo, mientras que las tuplas son colecciones de un número fijo de elementos que pueden ser de diferentes tipos. Hemos visto cómo crear, manipular y acceder a elementos en ambas estructuras, y hemos practicado con algunos ejercicios.
En el próximo módulo, profundizaremos en los fundamentos de la programación funcional, explorando conceptos como funciones de orden superior y expresiones lambda. ¡Sigue adelante!
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)