Haskell:
Trabalhando com CSV

Como fazer:

Em Haskell, o manuseio de arquivos CSV pode ser realizado usando a biblioteca cassava, uma das bibliotecas de terceiros mais populares para esse propósito. Abaixo estão exemplos mostrando como ler de e escrever para arquivos CSV usando cassava.

1. Lendo um arquivo CSV:

Primeiro, certifique-se de ter a cassava instalada adicionando-a ao arquivo cabal do seu projeto ou usando Stack.

Aqui está um exemplo simples para ler um arquivo CSV e imprimir cada registro. Supomos que o arquivo CSV tenha duas colunas: nome e idade.

{-# 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 ++ " tem " ++ show (age :: Int) ++ " anos de idade."

Assumindo que people.csv contenha:

John,30
Jane,25

A saída será:

John tem 30 anos de idade.
Jane tem 25 anos de idade.

2. Escrevendo um arquivo CSV:

Para criar um arquivo CSV, você pode usar a função encode da cassava.

Aqui está como você poderia escrever uma lista de registros em um arquivo 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)]

Após executar este programa, output.csv conterá:

John,30
Jane,25

Esta introdução concisa ao trabalho com arquivos CSV em Haskell usando a biblioteca cassava demonstra como ler e escrever em arquivos CSV, tornando as tarefas de manipulação de dados mais acessíveis para aqueles novos na linguagem.