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. 如何查看类型是否是Haskell中的类的实例?
- 3. GHCi如何选择一个Monad类型的实例用于多态操作?
- 4. 如何检查类类型,看看它是否实现了一个接口
- 5. PHP:检查一个变量是否是某个类的实例
- 6. 查看实例化另一个视图
- 7. 如何检查一个实例是否为枚举类型
- 8. 实例化一个泛型类型
- 9. 在ghci中查看特定类型的定义
- 10. 检查一个对象是否是Swift中的类元类型的一个实例
- 11. 返回一个类型,而不是一个实例
- 12. 查找它的类型(类)视图有一个活动实例
- 13. 一个类型的实例化Monoid
- 14. 如何查询统一类型为ghci?
- 15. 基本的scala语法,哪一个是类的新实例?
- 16. 哪一个先查看或查看模型?
- 17. 如何检查一个id是一个实例还是一个类?
- 18. 检查一个类的空实例
- 19. 不能从一个实例函数显示结果ghci中
- 20. 实例另一个类实例的参数中的一类
- 21. 在哪个类中创建Retrofit实例?
- 22. 在一个项目中查找一个类的所有实例
- 23. 这个ghci会话中的类型是怎么回事?
- 24. 一个类实例
- 25. 如何在对象类型的每个实例中查看和测试变量?
- 26. 实例化一个泛型类(JAVA)
- 27. 实例化一个COM和ATL类型
- 28. 不能实例化一个泛型类
- 29. 从实例创建一个协变型类的实例非协变一个
- 30. 类型是一个接口或抽象类,不能实例化
此外(以下),您可以查看源使用低级哈斯克尔模式。有关文档见github.com/haskell/haskell-mode/wiki和chrisdone.com/posts/haskell-mode-docs – artella 2014-06-01 07:04:47