gpt4 book ai didi

haskell - 如何在 Haskell 中安装库?

转载 作者:行者123 更新时间:2023-12-05 02:32:43 34 4
gpt4 key购买 nike

我尝试使用 Control.Monad.Extra.andM

import Control.Monad.Extra (andM)

但是有一个错误:

Could not find module ‘Control.Monad.Extra’
Perhaps you meant
Control.Monad.Catch (needs flag -package-key exceptions-0.10.4)
Control.Monad.Error (needs flag -package-key mtl-2.2.2)
Control.Monad.Except (needs flag -package-key mtl-2.2.2)not found

这个错误没有意义。

根据

https://cabal.readthedocs.io/en/3.6/installing-packages.html#installing-packages-from-hackage

3.2.1. Installing packages from HackageThe cabal tool also can download, configure, build and install a Hackage package and all of its dependencies in a single step. To do this, run:

$ cabal install [PACKAGE...]

To browse the list of available packages, visit the Hackage web site.

这说的是“一步到位”,但根据我的经验,这太复杂了,实际上我不知道如何安装 Control.Monad.Extra

通常,当一个 Haskeller 想要像这样安装一个特定的库/包时,你是怎么做到的?似乎没有足够的文档。

最佳答案

How to install an library in Haskell?

不需要你应该依赖它们,然后让 Cabal 担心可能需要完成的任何安装.即,如您所写

  1. >

    Go to the Hackage page and study which exact library to be used.

  2. >

    *.cabal file -> build-depends: extra >=1.7.10

    这是关键的一步。您自己的 Cabal 文件既可以指定现在需要哪些库,也可以确保将来一切正常。该文件需要指定您需要的包以及您自己定义的模块。

    可能您实际上并不需要 >=1.7.10 ,但在那里具体说明也没什么坏处。 Standard practice是在 x.y 上同时添加下限和上限级别,即你会使用 extra >=1.7 && <1.8 ,然后随着新版本的出现插入上限。可以说这有点过于谨慎了。如果您只使用包中的一些简单工具,这些工具将来不太可能有重大变化,那么将上限排除在外可能会更容易。

  3. >

    $ cabal install extra

    您已经指定了 extra您的项目需要它,无需再次说明。相反,现在只需构建您自己的 项目。

    $ cabal build
    或者,要使用您的模块获得 GHCi 提示,
    $ cabal repl
    或者,如果您有一个带有 main 的可执行文件您希望执行
    $ cabal run
    或者如果你想安装那个可执行文件(然后)
    $ cabal install
    然后 Cabal 会自动计算出 extra-1.7.10应该先安装。

    (在旧的 Cabal 中,仍然需要先运行 cabal install --dependencies-only。)

关于haskell - 如何在 Haskell 中安装库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71167160/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com