首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在hackage包中搜索函数?

如何在hackage包中搜索函数?
EN

Stack Overflow用户
提问于 2012-06-26 10:01:32
回答 2查看 1.2K关注 0票数 15

也许我漏掉了什么,但是有没有办法在hackage上搜索一些包裹?

假设我知道Snap框架有一个名为render的函数。我如何找到它,从它的黑客页面开始:http://hackage.haskell.org/package/snap-0.9.0.1

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-26 10:35:29

您可以通过使用+package搜索操作符来实现这一点(对于其他许多事情),也可以使用Hoogle

默认情况下,Hoogle将按名称或类型在一组标准的包中进行搜索:

  • Searching for 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

将结构的每个元素映射到一个操作,从左到右评估这些操作,并忽略结果。

  • …所以on

  • Searching for (a -> b -> c) -> f a -> f b -> f c会找到:
    • liftM2 :: Monad m => (a1 -> a2 -> r) -> m a1 -> m a2 -> m r

base Control.Monad

将函数提升为monad,从left到right.

  • liftA2 :: Applicative f => (a -> b -> c) -> f a -> f b -> f c扫描一元参数

base Control.Applicative

将二进制函数提升为操作。

  • …等等on

现在,这是很好的,但是其他的包呢?如果使用search for render,您会发现OpenGL中的Render :: RenderModepretty中的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

票数 21
EN

Stack Overflow用户

发布于 2012-06-26 10:06:40

单击包中某个模块的链接。然后在右上角,有一个index链接。单击它,然后单击指向所需函数开头的字母的链接。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11199853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档