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 $ "Error: " ++ show err
Right toml -> print toml -- או עיבוד נוסף של ה-TOML שנפרס
הפלט דוגמא יכול להיות מובנה ונגיש כמו כל סוג נתונים של Haskell.
צלילה עמוקה
בהיסטוריה, TOML נוצר על ידי טום פרסטון-וורנר, שותף מייסד של GitHub, כתגובה למורכבויות של YAML וJSON עבור קבצי תצורה. הוא מדגיש קריאות וכתיבה קלה יותר מ-JSON, ופשטות ומחמירות יותר מ-YAML.
חלופות ל-TOML כוללות את JSON ו-YAML, כאשר לכל פורמט יתרונות משלו. JSON היא כלי נפוץ ולא תלוי בשפה, בעוד ש-YAML מציע פורמט יותר קריא לאדם. TOML מוערך על פשטותו ועקביותו, תוך הימנעות מחלק מהמלכודות של הקרובים שלו.
היישום ב-Haskell לרוב כולל לייבררי שמנתח את ה-TOML לסוג נתונים של Haskell, תוך ניצול מערכת הטיפוסים המתקדמת של Haskell כדי להבטיח נכונות. הניתוח יכול להתבצע דרך ירידה רקורסיבית או ניתוח קומבינטורי, שמאזן בין יעילות לבין קריאות ותחזוקה של הקוד.
ראה גם
htoml
: https://hackage.haskell.org/package/htoml- מאגר ה-GitHub הרשמי של TOML: https://github.com/toml-lang/toml
- השוואה של פורמטים לעיבוד נתונים: https://en.wikipedia.org/wiki/Comparison_of_data-serialization_formats