क्या यह देखना संभव है कि किस प्रकार के प्रकार के प्रकार लागू होते हैं? कुछ की तरह:देखें कि किस टाइपक्लास टाइप को ghci में एक उदाहरण है?
>:typeclasses Int
[Num, etc...]
क्या यह देखना संभव है कि किस प्रकार के प्रकार के प्रकार लागू होते हैं? कुछ की तरह:देखें कि किस टाइपक्लास टाइप को ghci में एक उदाहरण है?
>:typeclasses Int
[Num, etc...]
:info
आदेश का उपयोग करें।
Prelude> :info Int
data Int = GHC.Types.I# GHC.Prim.Int# -- Defined in GHC.Types
instance Bounded Int -- Defined in GHC.Enum
instance Enum Int -- Defined in GHC.Enum
instance Eq Int -- Defined in GHC.Base
instance Integral Int -- Defined in GHC.Real
instance Num Int -- Defined in GHC.Num
instance Ord Int -- Defined in GHC.Base
instance Read Int -- Defined in GHC.Read
instance Real Int -- Defined in GHC.Real
instance Show Int -- Defined in GHC.Show
स्वाभाविक रूप से यह सूची वर्तमान में आयात किए गए मॉड्यूल पर निर्भर करती है।
Prelude> :info (->)
data (->) a b -- Defined in GHC.Prim
Prelude> :m +Control.Monad.Instances
Prelude Control.Monad.Instances> :info (->)
data (->) a b -- Defined in GHC.Prim
instance Monad ((->) r) -- Defined in Control.Monad.Instances
instance Functor ((->) r) -- Defined in Control.Monad.Instances
वाह देखें, मैंने अभी देखा है कि हमने एक दूसरे के * एक सेकंड * के भीतर हमारे उत्तर पोस्ट किए हैं: 21:32: 48Z बनाम 21: 32: 47Z। –
@ टिखोन जेल्विस: हां, अच्छा। –
प्रकार के साथ :info
या :i
की कोशिश करो।
यह आपको टाइपक्लास और प्रकार की घोषणा दोनों के साथ-साथ यह बताएगा कि आपको परिभाषित किया गया था (जो उपयोगी है अगर आपको याद नहीं है कि इसमें कौन से निर्माता हैं)।
आपके द्वारा परिभाषित किए जाने वाले प्रकारों के लिए, आपको यह भी एक लिंक मिलता है जहां इसे Emacs में परिभाषित किया गया था। यह आपके स्रोत के चारों ओर नेविगेट करना वाकई सुविधाजनक बनाता है।
ध्यान दें कि :i
बहुत बहुउद्देश्यीय है: आप इसे और प्रकार दोनों मानों पर उपयोग कर सकते हैं। तो :i True
और :i Bool
दोनों काम करते हैं!
*Main> :i Bool
data Bool = False | True -- Defined in GHC.Bool
instance [overlap ok] Truthy Bool
-- Defined at /home/tikhon/Documents/blarg2.hs:40:10-20
instance Bounded Bool -- Defined in GHC.Enum
instance Enum Bool -- Defined in GHC.Enum
instance Eq Bool -- Defined in GHC.Classes
instance Ord Bool -- Defined in GHC.Classes
instance Read Bool -- Defined in GHC.Read
instance Show Bool -- Defined in GHC.Show
instance Ix Bool -- Defined in GHC.Arr
*Main> :i True
data Bool = ... | True -- Defined in GHC.Bool
यह भी ऑपरेटरों की पूर्वता की जाँच के लिए बहुत उपयोगी है:
*Main> :i +
class (Eq a, Show a) => Num a where
(+) :: a -> a -> a
...
-- Defined in GHC.Num
infixl 6 +
इसके अतिरिक्त (नीचे) आप इनफेरियल हास्केल मोड का उपयोग कर स्रोत देख सकते हैं। दस्तावेज़ीकरण के लिए github.com/haskell/haskell-mode/wiki और chrisdone.com/posts/haskell-mode-docs – artella