aXq*_*Xqd 13 documentation haskell
如何在Haskell中获取在线文档?
有没有像Python下面那样优雅/方便的东西?
>>> help([].count)
Help on built-in function count:
count(...)
L.count(value) -> integer -- return number of occurrences of value
Run Code Online (Sandbox Code Playgroud)
sas*_*nin 20
标准的Haskell REPL是GHCi.虽然无法从GHCi中访问完整的文档,但可以获得大量有用的信息.
打印类型.在90%的情况下,这足以了解函数的功能以及如何使用它.
ghci> :t zipWith
zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
Run Code Online (Sandbox Code Playgroud)
:t是的缩写:type.
打印有关符号的信息.这对于查找符号所属的模块很有用.对于数据类型,它允许查看其定义和类实例.对于类型类,它允许查看其接口和作为其实例的类型列表.
ghci> :i 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
instance Show Bool -- Defined in GHC.Show
ghci> :i Eq
class Eq a where
(==) :: a -> a -> Bool
(/=) :: a -> a -> Bool
-- Defined in GHC.Classes
instance (Eq a) => Eq (Maybe a) -- Defined in Data.Maybe
instance (Eq a, Eq b) => Eq (Either a b) -- Defined in Data.Either
(many more instances follow)
ghci> :i zipWith
zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
-- Defined in GHC.List
Run Code Online (Sandbox Code Playgroud)
:i是的缩写:info.
打印种类.用于:k类型构造函数.
ghci> :k Maybe
Maybe :: * -> *
ghci> :k Int
Int :: *
Run Code Online (Sandbox Code Playgroud)
:k是的缩写:kind.
浏览模块的内容.这样可以查看导入模块提供的符号.
ghci> :browse Data.List
(\\) :: (Eq a) => [a] -> [a] -> [a]
delete :: (Eq a) => a -> [a] -> [a]
deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]
...
(many lines follow)
Run Code Online (Sandbox Code Playgroud)
:t,:k而:i工作只在范围符号(你需要导入模块与:m + Module.Name第一).:browse适用于所有可用模块.
Haddock记录了大多数Haskell库.您可以打开文档的HTML版本并阅读详细信息.
如果使用--enable-documentationflag in ,可以在本地安装它cabal install.
否则,浏览所有文档的一个好处是Hackage上的包列表.它还允许查看任何软件包早期版本的文档.有时它非常有用.
Shi*_*oir 12
目前,没有办法在ghci中查看Haddock文档,但是有一张票.
但是,您可以使用该:info命令获取一小部分信息,例如
ghci> :i nub
nub :: (Eq a) => [a] -> [a] -- Defined in Data.List
Run Code Online (Sandbox Code Playgroud)
这样你至少知道在哪里寻找特定功能的文档.