Haskell:
Работа с YAML

Как это сделать:

Чтобы работать с YAML в Haskell, используйте пакет yaml. Сначала установите его:

cabal install yaml

Определите структуру данных, а затем кодируйте и декодируйте YAML:

{-# LANGUAGE OverloadedStrings #-}
import Data.YAML
import Data.ByteString (ByteString)

-- Определение структуры данных
data Person = Person
    { name :: String
    , age  :: Int
    } deriving (Show)

-- Пример экземпляра Person
examplePerson :: Person
examplePerson = Person "Chris" 30

-- Сериализация (Haskell в YAML)
yamlEncode :: Person -> ByteString
yamlEncode = encode

-- Десериализация (YAML в Haskell)
yamlDecode :: ByteString -> Either String Person
yamlDecode = decodeThrow

main :: IO ()
main = do
    -- Кодирование в YAML и вывод результата
    putStrLn "Encoded YAML:"
    print $ yamlEncode examplePerson
  
    -- Пример данных YAML
    let exampleYAML = "name: Alex\nage: 25\n"
  
    -- Декодирование из YAML и вывод результата
    putStrLn "Decoded Haskell:"
    print $ yamlDecode exampleYAML

Пример вывода для кодирования и декодирования:

Encoded YAML:
"age: 30\nname: Chris\n"
Decoded Haskell:
Right (Person {name = "Alex", age = 25})

Глубокое погружение

YAML появился в 2001 году, нацеленный на сериализацию данных и читаемость для человека. Это популярный выбор для файлов конфигурации, таких как Docker Compose и рабочие процессы GitHub. К альтернативам относятся такие форматы, как JSON и XML, но минимальный синтаксис YAML часто предпочитают за его чистый вид. При реализации YAML в Haskell ключевым является определение структур данных, соответствующих парам ключ-значение в YAML. Пакет yaml, построенный на основе библиотеки C libyaml, обеспечивает отличную производительность и совместимость.

Смотрите также