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ファイルからの読み取りと書き込みの両方を示しており、言語に慣れていない人にとってもデータ操作タスクをよりアプローチ可能にしています。