20
A
回答
25
使用: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
+1
哇,我剛剛注意到,我們發佈中*彼此的二分之一*我們的答案:21:32: 48Z vs 21:32:47Z。 – 2012-02-18 00:14:55
+0
@TikhonJelvis:哈,很好。 – 2012-02-18 00:15:37
14
嘗試: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 +
相關問題
- 1. 檢查一個類型是否是Haskell中的Show實例?
- 2. PHP:檢查一個變量是否是某個類的實例
- 3. 查看實例化另一個視圖
- 4. 如何檢查一個實例是否爲枚舉類型
- 5. 檢查一個對象是否是Swift中的類元類型的一個實例
- 6. 查找它的類型(類)視圖有一個活動實例
- 7. 一個類型的實例化Monoid
- 8. 如何檢查一個id是一個實例還是一個類?
- 9. 在一個項目中查找一個類的所有實例
- 10. 在哪個類中創建Retrofit實例?
- 11. 一個類實例
- 12. 實例化一個泛型類(JAVA)
- 13. 實例化一個COM和ATL類型
- 14. 從實例創建一個協變型類的實例非協變一個
- 15. 如何檢查是否泛型類型實例從另一個「繼承」,既泛型類型和參數類型
- 16. 如何檢查一個變量是否是一個類的實例?
- 17. SPARQL/RDF查詢:從一個類中選擇一個實例
- 18. 在Eclipse中,如何查看哪個UI類是活動的?
- 19. 在Scala中創建一個泛型類型的實例?
- 20. 類的多個實例變量類型?
- 21. 提供的類型來實例化一個泛型類
- 22. 如何使組件屬於一個類型的一個實例
- 23. 在c中訪問一個實例類的靜態類型#
- 24. 如何從Actionscript 3.0中的另一個類實例引用一個類實例?
- 25. 爲什麼我不能在GHCi中定義一個類型?
- 26. 是一個ASP.net MVC查看「類」?
- 27. 如何使一個基類C類型的子類的實例#
- 28. 實例化一個類或不是?
- 29. 查找什麼列表類的一個實例是,在Python
- 30. 在C#中實現一個.NET接口實例化IronPython類型
此外(以下),您可以查看源使用低級哈斯克爾模式。有關文檔見github.com/haskell/haskell-mode/wiki和chrisdone.com/posts/haskell-mode-docs – artella 2014-06-01 07:04:47