Haskell:
डीबगर का उपयोग करना
कैसे:
आइए GHCi के साथ एक सैर पर चलें, जो Haskell का इंटरेक्टिव वातावरण है जो एक बुनियादी डीबगर के रूप में काम कर सकता है। आप इसे अपने Haskell कोड के साथ शुरू करें और आस-पास धकेलना शुरू करें। यहां एक उदाहरण है:
main :: IO ()
main = do
putStrLn "अरे, तुम्हारा नाम क्या है?"
name <- getLine
putStrLn $ "नमस्ते, " ++ name ++ "! चलो डीबग करते हैं."
let result = buggyFunction 5
print result
buggyFunction :: Int -> Int
buggyFunction n = n * 2 -- मान लें कि यहाँ एक बग है
GHCi के साथ डीबगिंग शुरू करने के लिए:
$ ghci YourHaskellFile.hs
buggyFunction
पर एक ब्रेकपॉइंट सेट करें:
Prelude> :break buggyFunction
अपना प्रोग्राम चलाएँ:
Prelude> :main
अरे, तुम्हारा नाम क्या है?
आपका प्रोग्राम buggyFunction
पर विरामित होता है। अब आप वेरिएबल्स का निरीक्षण कर सकते हैं, कोड के माध्यम से कदम बढ़ा सकते हैं, और अभिव्यक्तियों का मूल्यांकन कर सकते हैं।
गहन अध्ययन:
ऐतिहासिक रूप से, Haskell की शुद्ध फंक्शन्स और मजबूत टाइपिंग की प्रतिष्ठा ने यह विश्वास बनाया कि डीबगिंग उपकरण कम महत्वपूर्ण थे। वास्तविकता अलग है—जटिल प्रोग्राम हमेशा अच्छे डीबगिंग उपकरणों से लाभान्वित होते हैं। GHCi बुनियादी डीबगिंग आदेश प्रदान करता है। हालाँकि, अधिक दृश्य अनुभव या बड़े पैमाने के अनुप्रयोगों के लिए, आप Haskell एक्सटेंशन या IntelliJ के Haskell प्लगइन के साथ Visual Studio Code जैसे IDE का पता लगा सकते हैं।
डीबगर के विकल्प में प्रिंट विवरणों का उपयोग करना शामिल है, जिसे “printf डीबगिंग” के रूप में जाना जाता है, या Haskell की मजबूत प्रकार प्रणाली का लाभ उठाकर गलत स्थितियों को अप्रतिनिधित्व कर सकते हैं। फिर भी, कभी-कभी कोड के माध्यम से कदम उठाने की जगह कुछ भी नहीं लेता है।
कार्यान्वयन विवरण के रूप में, Haskell का डीबगर रनटाइम सिस्टम के साथ काम करता है। यह ब्रेकपॉइंट्स, कदम निष्पादन, और वेरिएबल निरीक्षण को संभाल सकता है। हालाँकि, चूँकि Haskell आलसी मूल्यांकित किया जाता है, चीजें थोड़ी गैर-अंतर्ज्ञानी हो सकती हैं। एक Haskell प्रोग्राम की डीबगिंग अक्सर इस बात पर ध्यान देने का मतलब होता है कि और कैसे अभिव्यक्तियाँ मूल्यांकित की जाती हैं।