Haskell:
Werken met YAML

Hoe te:

Om met YAML in Haskell te werken, gebruik je het yaml pakket. Installeer het eerst:

cabal install yaml

Definieer een gegevensstructuur en codeer en decodeer vervolgens YAML:

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

-- Definieer een gegevensstructuur
data Person = Person
    { name :: String
    , age  :: Int
    } deriving (Show)

-- Een voorbeeld van een Person instantie
examplePerson :: Person
examplePerson = Person "Chris" 30

-- Serialisatie (Haskell naar YAML)
yamlEncode :: Person -> ByteString
yamlEncode = encode

-- Deserialisatie (YAML naar Haskell)
yamlDecode :: ByteString -> Either String Person
yamlDecode = decodeThrow

main :: IO ()
main = do
    -- Codeer naar YAML en print het resultaat
    putStrLn "Gecodeerd YAML:"
    print $ yamlEncode examplePerson
  
    -- Voorbeeld YAML data
    let exampleYAML = "name: Alex\nage: 25\n"
  
    -- Decodeer van YAML en print het resultaat
    putStrLn "Gedecodeerd Haskell:"
    print $ yamlDecode exampleYAML

Voorbeelduitvoer voor coderen en decoderen:

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

Diepgaande duik

YAML is gestart in 2001, gericht op gegevensserialisatie en leesbaarheid voor mensen. Het is een populaire keuze voor configuratiebestanden, zoals Docker Compose en GitHub Workflows. Alternatieven zijn onder andere JSON en XML, maar de minimale syntaxis van YAML wordt vaak de voorkeur gegeven vanwege de schone verschijning. Bij het implementeren van YAML in Haskell is de sleutel het definiëren van gegevensstructuren die overeenkomen met de sleutel-waardeparen van YAML. Het yaml pakket, gebouwd op de libyaml C bibliotheek, biedt solide prestaties en compatibiliteit.

Zie ook