Haskell:
Lavorare con i CSV

Come fare:

In Haskell, la gestione dei file CSV può essere realizzata utilizzando la libreria cassava, una delle più popolari librerie di terze parti per questo scopo. Di seguito sono riportati esempi che mostrano come leggere e scrivere file CSV utilizzando cassava.

1. Leggere un file CSV:

Prima di tutto, assicurati di avere cassava installato aggiungendolo al file cabal del tuo progetto o utilizzando Stack.

Ecco un semplice esempio per leggere un file CSV e stampare ogni record. Si assume che il file CSV abbia due colonne: nome e età.

{-# 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 ++ " ha " ++ show (age :: Int) ++ " anni."

Assumendo che people.csv contenga:

John,30
Jane,25

L’output sarà:

John ha 30 anni.
Jane ha 25 anni.

2. Scrivere un file CSV:

Per creare un file CSV, puoi usare la funzione encode di cassava.

Ecco come potresti scrivere una lista di record in un file 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)]

Dopo aver eseguito questo programma, output.csv conterrà:

John,30
Jane,25

Questa breve introduzione al lavoro con file CSV in Haskell utilizzando la libreria cassava dimostra come leggere e scrivere file CSV, rendendo i compiti di manipolazione dei dati più accessibili per chi è nuovo al linguaggio.