2011-11-09 19 views
6

क्या जीएचसीआई में मूल रूप से राज्य डंप प्राप्त करने का कोई तरीका है? इसके द्वारा मेरा मतलब है:जीएचसीआई पर्यावरण डंप

  • सभी लोड किए गए ऑपरेटरों के साथ इसकी प्राथमिकता, सहयोगीता और हस्ताक्षर के साथ।
  • सभी लोड कक्षाएं।
  • सभी लोड किए गए डेटा, प्रकार और नए प्रकार के साथ-साथ वे किस वर्ग के उदाहरण हैं।
  • सभी हस्ताक्षर किए गए कार्यों के साथ, और वे वर्ग जो वे करते हैं, वे हैं।

यह मानते हुए कि यह संभव है, क्या यह अपवाद के दौरान रनटाइम पर ऐसा करना भी संभव है?

उत्तर

4

:browse आपको यह जानकारी अधिकतर प्रदान करेगा। यह

  • फ़ंक्शंस और ऑपरेटरों के लिए हस्ताक्षर टाइप करें।
  • कक्षाएं और उनके तरीके।
  • डेटा प्रकार, नए प्रकार और टाइप समानार्थी, रचनाकारों के साथ यदि वे दायरे में हैं।

किसी भी तर्क के बिना, यह वर्तमान में लोड मॉड्यूल के लिए यह जानकारी दिखाता है। आप एक अलग मॉड्यूल भी निर्दिष्ट कर सकते हैं।

Prelude> :browse Control.Applicative 
class (Functor f) => Applicative f where 
    pure :: a -> f a 
    (<*>) :: f (a -> b) -> f a -> f b 
    (*>) :: f a -> f b -> f b 
    (<*) :: f a -> f b -> f a 
... 

एक डेटा प्रकार के लिए पूर्वता और ऑपरेटरों के लिए संबद्धता सहित और अधिक विस्तार, है, साथ ही उदाहरणों देखने के लिए, :info का उपयोग करें।

Prelude> :info (^) 
(^) :: (Num a, Integral b) => a -> b -> a -- Defined in GHC.Real 
infixr 8^
Prelude> :info Bool 
data Bool = False | True -- Defined in GHC.Bool 
instance Bounded Bool -- Defined in GHC.Enum 
instance Enum Bool -- Defined in GHC.Enum 
instance Eq Bool -- Defined in GHC.Base 
instance Ord Bool -- Defined in GHC.Base 
instance Read Bool -- Defined in GHC.Read 

ये आदेश डीबगिंग के दौरान भी उपलब्ध हैं।

अधिक जानकारी के लिए, :help टाइप करें या the GHCi chapter of the GHC user's guide देखें।

+0

मुझे पूरी प्रणाली के लिए ऐसा कुछ नहीं चाहिए बल्कि एक मॉड्यूल। –

+2

@ वैन्सन सैमुएल: फॉर्म 'ब्राउज़ करें * मॉड्यूल' है, जो उस मॉड्यूल में किसी भी प्रकार के दायरे में जानकारी दिखाएगा, यानी इसके सभी आयात के साथ-साथ इसके निर्यात भी। शायद यह आपकी जरूरत के करीब है? – hammar

+0

मैं इसे आजमाउंगा। धन्यवाद @hammar यह चौथा प्रश्न है जिस पर आपने मेरी मदद की है। :-) –

1

इस जानकारी को प्राप्त करने के तरीके हैं। समस्या के रूप में तक मुझे पता है, वहाँ यह वास्तव में जिस तरह से आप चाहते हैं छानने का कोई रास्ता नहीं है कि, है, लेकिन वैसे भी यहाँ यह है:

  • आप कक्षाएं, ऑपरेटरों सहित सभी पहचानकर्ता को देखने के लिए चाहते हैं, वर्तमान में ghci में परिभाषित कन्स्ट्रक्टर, और प्रकार, जब आपके पास व्हाइटस्पेस पर कर्सर होता है तो केवल टैब दबाएं।

  • आप पूर्वता और एक ऑपरेटर * की संबद्धता जानना चाहते हैं तो बस

    :i * 
    
  • आप देखना चाहते हैं का उपयोग क्या वर्गों M सिर्फ

    :i M 
    
  • हैं का उपयोग का उदाहरण है आप फंक्शन f के हस्ताक्षर को देखना चाहते हैं बस

    का उपयोग करें

    यदि आप :set -fbreak-on-exception लिखते हैं तो ghci तोड़ देगा, फिर अपवाद फेंकने पर विफल हो जाएगा और फिर आप अपवाद के दौरान उपरोक्त सभी आदेशों का उपयोग कर सकते हैं।

संबंधित मुद्दे