haskell - 如何通过命令行使用 hoogle 搜索所有包?

标签 haskell hoogle

我已在本地安装了 hoogle 并运行了 hooglegenerate

如果我运行 hoogle MaybeToEither 我得到:

Data.Either.Utils maybeToEither :: MonadError e m => e -> Maybe a -> m a
Either maybeToEither :: Monoid b => (a -> b) -> Maybe a -> b
Network.Haskoin.Util maybeToEither :: b -> Maybe a -> Either b a

但是,如果我使用网络搜索,我会得到更多条目:https://hoogle.haskell.org/?hoogle=maybeToEither

有没有办法可以在本地生成相同的“数据库”?或者是否有可能用于搜索 https://hoogle.haskell.org 的 CLI ?

根据https://wiki.haskell.org/Hoogle我应该能够运行 hoogle datahoogle data all - 但这似乎只是进行搜索(所以可能已经过时了?)。

最佳答案

我尝试过:

$ cabal update
$ cabal install hoogle
Installed hoogle-5.0.17.2
$ hoogle generate --download
$ hoogle maybeToEither

并得到回复:

Data.Either.Utils maybeToEither :: MonadError e m => e -> Maybe a -> m a
Data.Either.Extra maybeToEither :: a -> Maybe b -> Either a b
Extra maybeToEither :: a -> Maybe b -> Either a b
Protolude.Either maybeToEither :: e -> Maybe a -> Either e a
Agda.Utils.Either maybeToEither :: Maybe a -> Either () a
Intro maybeToEither :: () => a -> Maybe b -> Either a b

目前网络显示 6 个条目,因为它已将 Data.Either.ExtraExtra 条目合并到一行中,因为它们引用相同的定义。除此之外,它们匹配。

请注意,hooglegenerate 会根据您已下载的内容生成一个数据库,因此,如果您每月运行 hooglegenerate,结果将不会改变。添加 --download 强制 Hoogle 重新下载。

关于haskell - 如何通过命令行使用 hoogle 搜索所有包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49467487/

相关文章:

haskell - 如何在 Haskell 中使用 Maybe 和 List Monad 的应用运算符?

haskell - Hoogle 和 yesod - 如何轻松查找非默认包中的函数

haskell - 为什么类型 f (f b c) (f (f a b) (f a c)) 与 (.) 不匹配?

haskell - 部署到 OpenShift 时,Cabal 在 ReadArgs 上构建失败

haskell - 如何通过 Nix 覆盖 nixpkgs 中的 Haskell 包?

haskell - 在 Haskell 中删除具有特定 Int 的树叶

haskell - Haskell 中的守卫和纯粹

haskell - 如何在 Google 上搜索类型类实例?

haskell - 从 Hoogle 命令行访问函数的文档