Haskell:
Робота з TOML

Як це зробити:

Спочатку переконайтеся, що у вас є бібліотека для парсингу TOML. Для Haskell htoml є популярним вибором. Вам потрібно буде додати її до залежностей вашого проєкту.

-- Імпортуємо бібліотеку для парсингу TOML
import qualified Text.Toml as Toml

-- Визначаємо структуру даних конфігурації
data Config = Config {
  title :: String,
  owner :: Owner
} deriving (Show)

data Owner = Owner {
  name :: String,
  dob :: Maybe Day -- Необов'язкова дата
} deriving (Show)

-- Парсинг рядка TOML
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 $ "Помилка: " ++ show err
    Right toml -> print toml -- Або додаткова обробка аналізованих даних TOML

Вихідний приклад можна структурувати та доступати як будь-який тип даних Haskell.

Поглиблений аналіз

Історично TOML був створений Томом Престон-Вернером, співзасновником GitHub, у відповідь на складнощі з YAML та JSON для конфігураційних файлів. Він наголошує на більшій зрозумілості та легкості написання порівняно з JSON, а також на більшій строгості та простоті порівняно з YAML.

До альтернатив TOML належать JSON і YAML, кожен з яких має свої переваги. JSON є убіквітним і незалежним від мови, тоді як YAML пропонує більш зручний для сприйняття людиною формат. TOML цінується за його простоту та послідовність, уникаючи деяких пасток своїх родичів.

Імплементація в Haskell, як правило, включає бібліотеку, яка парсить TOML у тип даних Haskell, часто використовуючи розширену систему типів Haskell для забезпечення правильності. Парсинг може виконуватися за допомогою рекурсивного спуску або комбінаторного аналізу, що збалансовує ефективність з читабельністю та підтримуваністю коду.

Див. також