Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
外部依赖,Haskell,stack:我应该修改一些东西还是';导入&x27;假设足够了吗?_Haskell_Dependency Management_Haskell Stack - Fatal编程技术网

外部依赖,Haskell,stack:我应该修改一些东西还是';导入&x27;假设足够了吗?

外部依赖,Haskell,stack:我应该修改一些东西还是';导入&x27;假设足够了吗?,haskell,dependency-management,haskell-stack,Haskell,Dependency Management,Haskell Stack,我对Haskell和stack都是新手 import Data.Set import Data.Stack 上面的语句触发编译错误:找不到模块“Data.Set”。也许你的意思是“Data.Int”。我试着用谷歌搜索,但没有发现类似的东西 因此,我的问题是:我是否需要手动指定外部依赖项,还是只需要我的stack build命令somewhy无法从缓存或存储库中获取适当的模块 如果我必须手动指定依赖项,我应该选择.cabal还是.yaml?处理版本控制的正确方法是什么 [是否]我需要手动指定外部

我对Haskell和stack都是新手

import Data.Set
import Data.Stack
上面的语句触发编译错误:
找不到模块“Data.Set”。也许你的意思是“Data.Int”
。我试着用谷歌搜索,但没有发现类似的东西

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

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

[是否]我需要手动指定外部依赖项[…]

因为您使用的是堆栈,所以很容易在代码中指定导入的依赖包。根据堆栈版本的不同,默认配置可能略有不同:

  • 如果您使用最新版本的Stack创建项目,您将在项目根目录中看到
    package.yaml
    hpack
    用于指定配置)。您需要在那里添加包依赖项,例如,
    数据集的
    容器
    。下面是我的一个项目中的依赖项部分的示例:

    dependencies:
    - base >= 4.7 && < 5
    - containers
    - time
    - network
    - bytestring
    
    依赖项:
    -基数>=4.7&<5
    -容器
    -时间
    -网络
    -bytestring
    
  • 如果您使用的是较旧版本的
    堆栈
    ,并且没有看到
    package.yaml
    ,则需要编辑
    您的项目名称.cabal
    ,以添加依赖项。以下是完整的文档,告诉您如何操作:

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

    [是否]我需要手动指定外部依赖项[…]

    因为您使用的是堆栈,所以很容易在代码中指定导入的依赖包。根据堆栈版本的不同,默认配置可能略有不同:

  • 如果您使用最新版本的Stack创建项目,您将在项目根目录中看到
    package.yaml
    hpack
    用于指定配置)。您需要在那里添加包依赖项,例如,
    数据集的
    容器
    。下面是我的一个项目中的依赖项部分的示例:

    dependencies:
    - base >= 4.7 && < 5
    - containers
    - time
    - network
    - bytestring
    
    依赖项:
    -基数>=4.7&<5
    -容器
    -时间
    -网络
    -bytestring
    
  • 如果您使用的是较旧版本的
    堆栈
    ,并且没有看到
    package.yaml
    ,则需要编辑
    您的项目名称.cabal
    ,以添加依赖项。以下是完整的文档,告诉您如何操作:

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