【问题标题】:How can I search a hackage package for a function?如何在 hackage 包中搜索功能?
【发布时间】:2012-06-26 02:01:32
【问题描述】:

也许我遗漏了一些东西,但是有没有办法在一些关于 hackage 的包中进行搜索?

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

【问题讨论】:

    标签: haskell hackage


    【解决方案1】:

    您可以通过使用+package 搜索运算符为此使用Hoogle(对于许多其他事情)。

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

    现在,这很好,很漂亮,但是其他包呢?如果你search for render,你会从OpenGL找到Render :: RenderMode,从pretty找到render :: Doc -> String,还有一些其他的东西;默认不搜索 snap 包。

    但是,如果您将 +packagename+Module.Name 添加到搜索中,Hoogle 将在指定的包内搜索(并且 -packagename-Module.Name 从搜索中删除包/模块)。因此,searching for +snap render 只能找到以下三件事:

    更多关于使用Hoogle的信息,您可以check its manual on the Haskell wiki

    【讨论】:

    • 哇,我一直在使用hoogle,从来不知道我可以做到这一点!
    • 不错!如果你在找东西,甚至不知道它在什么包里,你也可以使用hayoo
    • @DanBurton 谢谢,但在 Snap 中没有找到渲染功能。
    • @drozzy 帮我搜索render snap。如果你只搜索render,有11页的结果,它也在里面,只是不在第一页。
    • 为什么有些包没有返回类似+megaparsec的结果?
    【解决方案2】:

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

    【讨论】: