也许我错过了什么,但有没有办法在hackage上搜索一些包?
假设我知道Snap框架有一个名为render
的函数。如何从它的hackage页面开始找到它:
http://hackage.haskell.org/package/snap-0.9.0.1
答案 0 :(得分:21)
使用+package
搜索运算符,您可以使用Hoogle(就像其他许多事情一样)。
默认情况下,Hoogle会按名称或类型搜索标准的一组包:
traverse
会发现:
traverse :: (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
traverse_ :: (Foldable t, Applicative f) => (a -> f b) -> t a -> f ()
(a -> b -> c) -> f a -> f b -> f c
会发现:
liftM2 :: Monad m => (a1 -> a2 -> r) -> m a1 -> m a2 -> m r
liftA2 :: Applicative f => (a -> b -> c) -> f a -> f b -> f c
现在,这很好,花花公子,但其他包呢?如果您search for render
,则会发现Render :: RenderMode
中的OpenGL,render :: Doc -> String
中的pretty以及其他一些内容;默认情况下不会搜索快照包。
但是,如果您在搜索中添加+packagename
或+Module.Name
,则Hoogle将仅在指定的包内搜索(-packagename
和{{1}从搜索中删除包/模块)。因此,searching for +snap render
只发现以下三件事:
render :: HasHeist b => ByteString -> Handler b v ()
renderAs :: HasHeist b => ByteString -> ByteString -> Handler b v ()
renderWithSplices :: HasHeist b => ByteString -> [(Text, SnapletSplice b v)] -> Handler b v ()
有关使用Hoogle的详细信息,您可以check its manual on the Haskell wiki。
答案 1 :(得分:7)
单击包中某个模块的链接。然后在右上角有一个index链接。单击它,然后单击指向所需函数开始的字母的链接。