我正在尝试安装"Haskell:函数式编程的手艺“第三版的代码。
我在Centos version7上使用的是GHCi 7.6.3版本。
然后:
cabal unpack Craft3e
cd Craft3e-0.1.1.0/
cabal install
...
[29 of 67] Compiling CalcParseLib ( Calculator/CalcParseLib.hs, dist/build/CalcParseLib.o )
Calculator/CalcParseLib.hs:132:10:
Not in scope: type constructor or class `Applicative'
Failed to install Craft3e-0.1.1.0
cabal: Error: some packages failed to install:
Craft3e-0.1.1.0 failed during the building phase. The exception was:
ExitFailure 1我已多次尝试此安装,但无法克服此错误。
我能不能用"cabal install“以外的东西?
在开始这个示例之前,我有很多关于Haskell的知识需要学习,但如果知道安装是正常的就太好了!:)
发布于 2017-05-06 03:14:59
您有三个选项:
在你用
Calculator/CalcParseLib.hs,然后添加一个...导入Control.Applicative
..。在开头的其他import行旁边添加一行。我怀疑你将不得不对其他模块做同样的事情,如果你做了这样的更改后,同样的错误出现在其他地方,并且可能有类似的nature.
#3是最终的解决方案。但是,如果你现在只想开始阅读这本书,你可以使用#1,并将重新安装留到以后。
为了便于参考,这里简要解释了这个问题(我将使用一些不熟悉的术语,但在研究Haskell的过程中,您很快就会了解它们)。有一个名为Applicative的重要类型类,由于历史原因,它没有与其他核心库很好地集成在一起。这种情况在GHC7.10中得到了纠正,它在前言中包括了Applicative (在Haskell程序中默认导入的模块),并使其有必要在缺少Applicative实例的许多地方添加它们。Craft3e包中的代码已更新,因此这些Applicative实例已就位(参见this entry in the book's blog),但是没有添加import Control.Applicative行,这是使更新的代码在较旧的GHC中工作所必需的,这些GHC在前言中没有Applicative,从而导致您看到的错误。
https://stackoverflow.com/questions/43811461
复制相似问题