繁体   English   中英

外部依赖关系,Haskell,堆栈:我是否应该修改某些东西或“导入”以备足够?

[英]External dependencies, Haskell, stack: should I modify something or 'import' suppose to be sufficient?

对于Haskell以及堆栈我都是很新的。

import Data.Set
import Data.Stack

上面的语句触发编译错误: Could not find module 'Data.Set'. Perhaps you meant 'Data.Int' Could not find module 'Data.Set'. Perhaps you meant 'Data.Int' 我试图谷歌搜索,没有发现类似的东西。

因此,我的问题是:我是否需要手动指定外部依赖项,还是只是我的stack build命令为什么无法从某种程度的缓存或存储库中获取适当的模块?

如果我必须手动指定依赖项,我应该选择.cabal还是.yaml 处理版本控制的正确方法是什么?

[我需要手动指定外部依赖项吗?

是。

由于使用的是Stack,因此很容易指定要在代码中导入的依赖包。 根据您的Stack版本,默认配置可能有所不同:

  1. 如果使用最新版本的Stack创建项目,则会在项目的根目录中看到package.yaml (在这种情况下,使用hpack来指定配置)。 您需要在其中添加包依赖关系,例如Data.Set containers 这是我的一个项目中的依赖项部分的示例:

     dependencies: - base >= 4.7 && < 5 - containers - time - network - bytestring 
  2. 如果您使用的是较旧版本的stack ,但看不到package.yaml ,则需要编辑your-project-name.cabal以添加依赖项。 这是完整的文档,告诉您如何执行此操作: https : //docs.haskellstack.org/en/stable/GUIDE/#adding-dependencies

就个人而言,我更喜欢带有hpackpackage.yaml )的新系统。 基本上,它更简单,并且可以节省您声明所有模块的时间(与依赖性无关)。 如果您有package.yaml ,请不要编辑.cabal ,它是hpack自动生成的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM