En este módulo, aprenderemos sobre las operaciones básicas de entrada y salida (I/O) en Haskell. La I/O es fundamental para interactuar con el mundo exterior, como leer datos de un archivo o imprimir resultados en la consola. A diferencia de otros lenguajes, Haskell maneja la I/O de manera pura y funcional, utilizando el concepto de mónadas.
Contenido
- Introducción a la I/O en Haskell
- Funciones Básicas de I/O
- Ejemplos Prácticos
- Ejercicios
- Introducción a la I/O en Haskell
En Haskell, las operaciones de I/O se manejan dentro de la mónada IO
. Esto permite que las funciones que realizan I/O sean puras, ya que el tipo IO
encapsula los efectos secundarios.
Conceptos Clave
- Mónada
IO
: Una estructura que encapsula operaciones de entrada y salida. - Acciones I/O: Operaciones que se ejecutan en el contexto de la mónada
IO
.
- Funciones Básicas de I/O
putStrLn
La función putStrLn
se utiliza para imprimir una línea de texto en la consola.
Ejemplo
getLine
La función getLine
se utiliza para leer una línea de texto desde la entrada estándar (generalmente el teclado).
Ejemplo
main :: IO () main = do putStrLn "¿Cómo te llamas?" nombre <- getLine putStrLn ("Hola, " ++ nombre ++ "!")
readFile
y writeFile
Estas funciones se utilizan para leer y escribir archivos.
Ejemplo
main :: IO () main = do contenido <- readFile "archivo.txt" putStrLn contenido writeFile "archivo_copia.txt" contenido
- Ejemplos Prácticos
Ejemplo 1: Programa que saluda al usuario
main :: IO () main = do putStrLn "¿Cómo te llamas?" nombre <- getLine putStrLn ("Hola, " ++ nombre ++ "!")
Ejemplo 2: Lectura y escritura de archivos
main :: IO () main = do putStrLn "Leyendo contenido del archivo 'entrada.txt'..." contenido <- readFile "entrada.txt" putStrLn "Contenido del archivo:" putStrLn contenido putStrLn "Escribiendo contenido en 'salida.txt'..." writeFile "salida.txt" contenido putStrLn "Operación completada."
- Ejercicios
Ejercicio 1: Programa de Eco
Escribe un programa que lea una línea de texto del usuario y luego la imprima en la consola.
Solución
main :: IO () main = do putStrLn "Escribe algo:" entrada <- getLine putStrLn ("Escribiste: " ++ entrada)
Ejercicio 2: Contador de Palabras
Escribe un programa que lea el contenido de un archivo, cuente el número de palabras y lo imprima en la consola.
Solución
import Data.List (words) main :: IO () main = do contenido <- readFile "archivo.txt" let numPalabras = length (words contenido) putStrLn ("El archivo contiene " ++ show numPalabras ++ " palabras.")
Conclusión
En esta sección, hemos aprendido los conceptos básicos de la I/O en Haskell, incluyendo cómo leer y escribir en la consola y en archivos. Estos fundamentos son esenciales para cualquier programa que necesite interactuar con el mundo exterior. En el próximo módulo, profundizaremos en el manejo de archivos y otras operaciones de I/O más avanzadas.
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)