【发布时间】:2011-09-14 20:03:31
【问题描述】:
我正在使用 cabal 下载 Haskell 包。
以下作品:
> cabal install JSON
获取 Text.JSON
但是,这失败了:
> cabal install Data.List.Key
cabal: "Data.List.Key" is not valid syntax for a package name or package
dependency.
这里的语法问题是什么?如何让 cabal 获取 Data.List.Key?一般来说,对于名称为 X.Y 的包,cabal install 需要什么名称才能找到该包? (我很困惑为什么 cabal install JSON 得到 Text.JSON,而不是 Foobarbaz.JSON)
【问题讨论】:
-
使用的名称只是 hackage 上的包名称。对于您的情况,
cabal install utility-ht应该可以正常工作。 hackage.haskell.org/package/utility-ht-0.0.7 -
我认为混淆在于 Haskell 所称的 模块名称 与 Java(可能还有其他语言)所称的 包名称。 Haskell 模块类似于 Java 包,而 Haskell 包更像 Java 世界所称的库或项目。
-
@MatrixFrog -- 是的,这让我很困惑。谢谢!
-
我真的希望 cabal install 使用一些启发式方法来使模块名称起作用。有很多优秀的 Haskell 教程,但是在我运行它们之前,我需要找到每个导入的包名称。这些软件包可能只为有经验的用户所知,但他们无论如何都不会阅读教程。
-
@Adam 您希望这样的启发式方法如何工作?如果您已经知道要查找的模块但不知道它在哪个包中,请使用 google 或 hayoo 快速搜索 hackage!将在 5 秒内带您到那里。如果您既不知道包名也不知道模块名称 - 好吧,如果您至少知道您正在寻找的功能,您仍然可以尝试 google 或 hayoo!。如果您也不知道这些,那么世界上没有任何启发式方法可以拯救您。