也许我漏掉了什么,但是有没有办法在hackage上搜索一些包裹?
假设我知道Snap框架有一个名为render的函数。我如何找到它,从它的黑客页面开始:http://hackage.haskell.org/package/snap-0.9.0.1
发布于 2012-06-26 10:35:29
您可以通过使用+package搜索操作符来实现这一点(对于其他许多事情),也可以使用Hoogle。
默认情况下,Hoogle将按名称或类型在一组标准的包中进行搜索:
traverse会找到:traverse :: (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)base Data.Traversable
traverse_ :: (Foldable t, Applicative f) => (a -> f b) -> t a -> f ()base Data.Foldable
将结构的每个元素映射到一个操作,从左到右评估这些操作,并忽略结果。
(a -> b -> c) -> f a -> f b -> f c会找到:liftM2 :: Monad m => (a1 -> a2 -> r) -> m a1 -> m a2 -> m rbase Control.Monad
将函数提升为monad,从left到right.
liftA2 :: Applicative f => (a -> b -> c) -> f a -> f b -> f c扫描一元参数base Control.Applicative
将二进制函数提升为操作。
现在,这是很好的,但是其他的包呢?如果使用search for render,您会发现OpenGL中的Render :: RenderMode、pretty中的render :: Doc -> String以及其他一些内容;默认情况下不会搜索snap包。
但是,如果您将+packagename或+Module.Name添加到您的搜索中,Hoogle将只在指定的包中进行搜索( -packagename和-Module.Name会从搜索中删除包/模块)。因此,searching for +snap render仅找到以下三项内容:
render :: HasHeist b => ByteString -> Handler b v ()snap Snap.Snaplet.Heist
将模板呈现为text/html。如果未找到给定的模板,则返回empty.
renderAs :: HasHeist b => ByteString -> ByteString -> Handler b v ()snap Snap.Snaplet.Heist
将模板呈现为给定的内容类型。如果未找到给定的模板,则返回empty.
renderWithSplices :: HasHeist b => ByteString -> [(Text, SnapletSplice b v)] -> Handler b v ()snap Snap.Snaplet.Heist
呈现具有给定拼接集的模板。这是heistLocal、bindSplices和render常见组合的语法糖。
有关使用Hoogle的更多信息,请访问check its manual on the Haskell wiki。
发布于 2012-06-26 10:06:40
单击包中某个模块的链接。然后在右上角,有一个index链接。单击它,然后单击指向所需函数开头的字母的链接。
https://stackoverflow.com/questions/11199853
复制相似问题