Haskell:
YAML के साथ काम करना
कैसे:
Haskell में YAML प्रोसेसिंग के लिए बिल्ट-इन सपोर्ट नहीं है, लेकिन आप yaml
और aeson
जैसी तृतीय-पक्ष लाइब्रेरी का उपयोग करके YAML डेटा को पार्स और जेनरेट कर सकते हैं। यहाँ पर आपको शुरू करने का तरीका दिया गया है:
YAML पढ़ना
सबसे पहले, अपने प्रोजेक्ट की निर्भरताओं में yaml
पैकेज को जोड़ें। फिर, आप एक साधारण YAML दस्तावेज़ को पार्स करने के लिए निम्नलिखित उदाहरण का उपयोग कर सकते हैं:
{-# LANGUAGE OverloadedStrings #-}
import Data.YAML
import Data.ByteString (ByteString)
import Control.Monad.IO.Class (liftIO)
-- उदाहरण YAML डेटा
yamlData :: ByteString
yamlData = "
name: John Doe
age: 30
"
-- YAML दस्तावेज़ से मेल खाने वाली एक डेटा संरचना परिभाषित करें
data Person = Person
{ name :: String
, age :: Int
} deriving (Show)
instance FromYAML Person where
parseYAML = withMap "Person" $ \m -> Person
<$> m .: "name"
<*> m .: "age"
main :: IO ()
main = do
let parsed = decode1 yamlData :: Either (Pos,String) Person
case parsed of
Left err -> putStrLn $ "YAML पार्स करने में त्रुटि: " ++ show err
Right person -> print person
ऊपर दिए गए कोड के लिए नमूना आउटपुट ऐसा दिख सकता है:
Person {name = "John Doe", age = 30}
YAML लिखना
Haskell डेटा संरचनाओं से YAML जेनरेट करने के लिए, आप नीचे दिखाए अनुसार yaml
पैकेज की एन्कोडिंग कार्यक्षमताओं का उपयोग कर सकते हैं:
{-# LANGUAGE OverloadedStrings #-}
import Data.YAML
import Data.ByteString.Lazy.Char8 (unpack)
-- पिछले उदाहरण से Person डेटा संरचना का उपयोग करते हुए
person :: Person
person = Person "Jane Doe" 25
main :: IO ()
main = do
let yamlData = encode1 person
putStrLn $ unpack yamlData
इस प्रोग्राम का आउटपुट एक YAML-फॉरमेटेड स्ट्रिंग होगा:
name: Jane Doe
age: 25
ये उदाहरण Haskell में YAML के साथ काम करने के लिए एक प्रारंभिक बिंदु के रूप में काम करना चाहिए। अपनी आवश्यकताओं के आधार पर, आप इन लाइब्रेरियों द्वारा प्रदान की गई अधिक उन्नत सुविधाओं और विकल्पों का पता लगाना चाह सकते हैं।