我正在遵循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 list
时parallel
不在列表中。
我该如何解决呢?
答案 0 :(得分:3)
您可以在此处执行以下两项操作之一:
parallel
作为依赖项。为此,我将带您参考Cabal的quickstart guide。parallel
软件包。在列出的示例中,您需要导入Control.Parallel
才能使用par
和pseq
。但是,这些功能也是GHC.Conc
的一部分,而base
是import Control.Parallel
包的一部分。因此,要使您的程序在不涉及任何程序包管理的情况下运行,只需将import GHC.Conc
替换为let mut board: [[u8; 4]; 4] = [[1, 6, 5, 2],
[4, 8, 9, 3],
[9, 2, 2, 5],
[3, 7, 6, 7]];
,就可以了。答案 1 :(得分:3)
请勿使用阴谋安装或堆栈安装来管理依赖项。
代替使用cabal或stack文件列出所有这些软件包,然后使用“ build”命令将其提取到您的项目文件夹中。
使用GHC进行编译时,cabal和stack都将为依赖项提供适当的标志。
或者,找出cabal在哪里下载了该源代码,并将其与标志一起传递给GHC。认为这是不必要的低级工作。