Haskell:
Att arbeta med TOML
Hur:
Först, se till att du har ett TOML-tolkande bibliotek. För Haskell är htoml
ett populärt val. Du kommer att behöva lägga till det i ditt projekts beroenden.
-- Importera TOML-tolkande biblioteket
import qualified Text.Toml as Toml
-- Definiera din konfigurationsdatastruktur
data Config = Config {
title :: String,
owner :: Owner
} deriving (Show)
data Owner = Owner {
name :: String,
dob :: Maybe Day -- Valfritt datum
} deriving (Show)
-- Tolkning av en TOML-sträng
main :: IO ()
main = do
let tomlData = "[owner]\nname = \"Tom Preston-Werner\"\ndob = 1979-05-27T07:32:00Z"
case Toml.parseTomlDoc "" tomlData of
Left err -> putStrLn $ "Fel: " ++ show err
Right toml -> print toml -- Eller vidare bearbeta den tolkade TOML
Exempelutmatning kan struktureras och nås som vilken Haskell-datstyp som helst.
Djupdykning
Historiskt sett skapades TOML av Tom Preston-Werner, medgrundare av GitHub, som en reaktion på komplexiteten hos YAML och JSON för konfigurationsfiler. Det betonar att vara mer läsbart och lättare att skriva än JSON, och striktare och enklare än YAML.
Alternativ till TOML inkluderar JSON och YAML, där varje format har sina egna styrkor. JSON är allestädes närvarande och språkagnostiskt, medan YAML erbjuder ett mer läsbart format. TOML värderas för sin enkelhet och konsekvens, och undviker några av fallgroparna som dess släktingar har.
Implementering i Haskell involverar vanligtvis ett bibliotek som tolkar TOML till en Haskell-datstyp, ofta med användning av Haskells avancerade typsystem för att säkerställa korrekthet. Tolkning kan ske genom rekursivt nedstigning eller kombinatorisk tolkning, vilket balanserar effektivitet med läsbarhet och underhåll av koden.
Se även
htoml
: https://hackage.haskell.org/package/htoml- Officiellt TOML GitHub-förvar: https://github.com/toml-lang/toml
- Jämförelse av data-serialiseringsformat: https://en.wikipedia.org/wiki/Comparison_of_data-serialization_formats