找不到模块“Control.Parallel”

Could not find module `Control.Parallel'

我正在按照 this 指南进行操作,然后进入了“编写您的第一个并行 Haskell 程序”,其中您使用了 Control.Parallel。当我尝试编译它时,我得到:

    A.hs:1:1: error:
    Could not find module `Control.Parallel'
    Use -v (or `:set -v` in ghci) to see a list of the files searched for.
  |
1 | import Control.Parallel
  | ^^^^^^^^^^^^^^^^^^^^^^^

没有任何地方说我必须安装任何东西。尽管如此,我 运行 cabal install --lib parallel 并且安装正常,但仍然找不到软件包。当我运行ghc-pkg listparallel不就行了。

我该如何解决这个问题?

您可以在此处执行以下两项操作之一:

  1. 您可以使用 cabal 启动一个新项目,并将 parallel 添加为依赖项。为此,我会向您介绍 Cabal 的 quickstart guide.
  2. 或者,您可以跳过 parallel 包。在您列出的示例中,您需要导入 Control.Parallel 才能使用 parpseq。但是,这些函数也是 GHC.Conc 的一部分,后者是 base 包的一部分。因此,要让您的程序在不涉及任何包管理的情况下运行,只需将 import Control.Parallel 替换为 import GHC.Conc,您应该会很好。

不要使用 cabal 安装或堆栈安装来管理您的依赖项。

而是使用 cabal 或堆栈文件列出所有这些包,然后使用“构建”命令将它们提取到您的项目文件夹中。

当使用 GHC 编译时,cabal 和 stack 都会为您的依赖项提供适当的标志。

或者,找出 cabal 从何处下载该源代码并将其与标志一起传递给 GHC。认为这是不必要的低水平工作。