Haskell:
Làm việc với YAML
Làm thế nào:
Để làm việc với YAML trong Haskell, sử dụng gói yaml
. Đầu tiên, cài đặt nó:
cabal install yaml
Xác định một cấu trúc dữ liệu, sau đó mã hóa và giải mã YAML:
{-# LANGUAGE OverloadedStrings #-}
import Data.YAML
import Data.ByteString (ByteString)
-- Xác định cấu trúc dữ liệu
data Person = Person
{ name :: String
, age :: Int
} deriving (Show)
-- Một thể hiện Person mẫu
examplePerson :: Person
examplePerson = Person "Chris" 30
-- Mã hóa (Haskell sang YAML)
yamlEncode :: Person -> ByteString
yamlEncode = encode
-- Giải mã (YAML sang Haskell)
yamlDecode :: ByteString -> Either String Person
yamlDecode = decodeThrow
main :: IO ()
main = do
-- Mã hóa sang YAML và in kết quả
putStrLn "YAML được mã hóa:"
print $ yamlEncode examplePerson
-- Dữ liệu YAML mẫu
let exampleYAML = "name: Alex\nage: 25\n"
-- Giải mã từ YAML và in kết quả
putStrLn "Haskell được giải mã:"
print $ yamlDecode exampleYAML
Kết quả mẫu cho việc mã hóa và giải mã:
YAML được mã hóa:
"age: 30\nname: Chris\n"
Haskell được giải mã:
Right (Person {name = "Alex", age = 25})
Đi sâu nghiên cứu
YAML bắt đầu vào năm 2001, nhắm mục tiêu vào việc hóa dữ liệu và khả năng đọc dễ dàng cho con người. Đây là sự lựa chọn phổ biến cho các tệp cấu hình, như Docker Compose và GitHub Workflows. Các lựa chọn thay thế bao gồm JSON và XML, nhưng cú pháp tối giản của YAML thường được ưa thích vì vẻ ngoài gọn gàng. Khi triển khai YAML trong Haskell, điểm then chốt là xác định các cấu trúc dữ liệu ánh xạ với các cặp khóa-giá trị của YAML. Gói yaml
, được xây dựng dựa trên thư viện libyaml C, cung cấp hiệu suất tốt và tính tương thích.
Xem thêm
- Trang web chính thức của YAML: https://yaml.org
- Gói
yaml
trên Hackage: https://hackage.haskell.org/package/yaml - Gói
aeson
, cho JSON trong Haskell có nhiều điểm tương đồng: https://hackage.haskell.org/package/aeson