Haskell:
CSVとの作業

方法

Haskellでは、cassavaライブラリを使用してCSVファイルを扱うことができます。これは、この目的のための人気のあるサードパーティ製ライブラリの一つです。以下は、cassavaを使用してCSVファイルから読み込みと書き込みを行う例です。

1. CSVファイルの読み込み:

まず、プロジェクトのcabalファイルに追加するか、Stackを使用してcassavaがインストールされていることを確認します。

ここに、CSVファイルを読み込んで各レコードを出力する簡単な例を示します。CSVファイルにはnameとageの2つの列があると仮定します。

{-# 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 ++ " is " ++ show (age :: Int) ++ " years old."

people.csvに以下が含まれていると仮定します:

John,30
Jane,25

出力は以下になります:

John is 30 years old.
Jane is 25 years old.

2. CSVファイルの書き込み:

CSVファイルを作成するには、cassavaからencode関数を使用できます。

ここでは、レコードのリストを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)]

このプログラムを実行した後、output.csvには以下が含まれます:

John,30
Jane,25

このcassavaライブラリを使用してHaskellでCSVファイルを扱うための簡潔な紹介は、CSVファイルからの読み取りと書き込みの両方を示しており、言語に慣れていない人にとってもデータ操作タスクをよりアプローチ可能にしています。