Haskell:
Trabajando con CSV

Cómo hacerlo:

En Haskell, el manejo de archivos CSV se puede lograr utilizando la biblioteca cassava, una de las bibliotecas de terceros más populares para este propósito. A continuación, se muestran ejemplos de cómo leer y escribir en archivos CSV usando cassava.

1. Leyendo un archivo CSV:

Primero, asegúrate de tener cassava instalado añadiéndolo al archivo cabal de tu proyecto o usando Stack.

Aquí tienes un ejemplo simple para leer un archivo CSV e imprimir cada registro. Suponemos que el archivo CSV tiene dos columnas: nombre y edad.

{-# LANGUAGE OverloadedStrings #-}
import Data.Csv
import qualified Data.ByteString.Lazy as BL
import qualified Data.Vector as V

main :: IO ()
main = do
    csvData <- BL.readFile "people.csv"
    case decode NoHeader csvData of
        Left err -> putStrLn err
        Right v -> V.forM_ v $ \(name, age) ->
            putStrLn $ name ++ " tiene " ++ show (age :: Int) ++ " años de edad."

Suponiendo que people.csv contiene:

John,30
Jane,25

La salida será:

John tiene 30 años de edad.
Jane tiene 25 años de edad.

2. Escribiendo un archivo CSV:

Para crear un archivo CSV, puedes usar la función encode de cassava.

Así es como podrías escribir una lista de registros en un archivo CSV:

{-# LANGUAGE OverloadedStrings #-}
import Data.Csv
import qualified Data.ByteString.Lazy as BL

main :: IO ()
main = BL.writeFile "output.csv" $ encode [("John", 30), ("Jane", 25)]

Después de ejecutar este programa, output.csv contendrá:

John,30
Jane,25

Esta introducción concisa al trabajo con archivos CSV en Haskell utilizando la biblioteca cassava demuestra cómo leer y escribir en archivos CSV, haciendo las tareas de manipulación de datos más accesibles para aquellos nuevos en el lenguaje.