在Haskell项目中添加库

在Haskell项目中添加库,haskell,Haskell,我正在做一些哈斯克尔的练习。我已经到了需要在我的项目中包括一个库的地步。但为了更清楚,我想包括library Data.List.Split。图书馆可以找到 我试着浏览了一些文档,但我似乎不明白怎么做。我的项目有: package.yaml stack.yaml 阴谋集团文件 我希望他们有一本“使用堆栈的傻瓜指南”,一些绝对初学者能够理解的东西 请使用示例解释您的答案。您应该将库拆分和特定版本添加到构建部分的cabal文件中。例如,如果您的cabal文件中有以下内容: build-depends

我正在做一些哈斯克尔的练习。我已经到了需要在我的项目中包括一个库的地步。但为了更清楚,我想包括library Data.List.Split。图书馆可以找到

我试着浏览了一些文档,但我似乎不明白怎么做。我的项目有:

  • package.yaml
  • stack.yaml
  • 阴谋集团
    文件
  • 我希望他们有一本“使用堆栈的傻瓜指南”,一些绝对初学者能够理解的东西


    请使用示例解释您的答案。

    您应该将库
    拆分
    和特定版本添加到
    构建部分的
    cabal
    文件中。例如,如果您的
    cabal
    文件中有以下内容:

    build-depends:
      base >=4.7
    
    现在
    Stack
    知道您的项目依赖于
    base
    库,它应该需要大于或等于
    4.7
    的版本。因此,要添加
    split
    库,您应该添加如下内容:

    build-depends:
      split == 0.2.3.2
    
    这只是说您需要
    0.2.3.2
    版本的
    split


    在这里,你可以阅读更多关于这一点的内容:(阅读工作流部分),这里有一个
    cabal
    文件的示例,它需要一些库。

    我想我找到了另一种方法。我需要在
    package.yaml
    文件中插入
    split
    作为依赖项之一,如下所示:

    依赖项:
    -分裂
    
    接下来删除
    cabal
    文件,然后在终端中键入
    stack build

    结果是它创建了一个新的
    cabal
    文件,而无需我对
    cabal
    文件进行任何特定更改

    新的
    cabal
    文件现在将
    split
    作为一个依赖项,如下所示:

    构建取决于:
    基础
    分裂
    

    在新生成的
    cabal
    文件的顶部,它表示它是由
    package.yaml
    文件
    hpack
    生成的,谢谢。您如何知道使用单词
    split
    而不是Data.List.split这是因为库的名称是
    split
    :转到,您将看到用于拆分列表的图例
    split:Combinator库。另外,从url中可以看到
    split-0.2.3.2
    ,它被解析为
    {name of the library}-{version of the library}
    Data.List.Split
    是库的模块结构,只是说明如何导入它。这里有
    split
    lib的实际
    cabal
    文件: