如何查找包含指定Haskell模块的包?Hackage搜索异常求助
查找Haskell模块所属包的实用方法
遇到Hackage网页搜索模块不好用的情况,可以试试以下几种更可靠的方法:
使用
ghc-pkg查询本地已安装包
如果你的环境里已经装过相关包,直接在终端运行:ghc-pkg find-module System.Random命令会直接返回包含该模块的包信息,比如
random-1.2.1.1。用Cabal命令行搜索Hackage上的包
网页版Hackage的搜索逻辑是基于包的元数据(名称、描述等),对模块名的支持很差,推荐用Cabal的专门模块搜索命令:cabal search --module System.Random这个命令会直接遍历Hackage上所有包的模块列表,精准定位到包含目标模块的包(比如这里的
random包)。本地Hoogle查询(需提前安装)
如果你装了本地Hoogle工具,运行:hoogle System.Random结果里会明确标注模块所属的包,格式类似
System.Random (random),查询速度快且结果准确。
关于你提到的Hackage网页搜索问题:网页版的搜索并非针对模块设计,它的匹配逻辑会把点号(.)当作特殊字符处理,而且没有公开的规则说明,所以搜System.Random时无法匹配到random包描述里的内容,这属于网页搜索的局限性。
内容的提问来源于stack exchange,提问作者reverish
相关产品推荐
相关产品推荐

