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