首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Craft3e: cabal安装不在范围内:适用

Craft3e: cabal安装不在范围内:适用
EN

Stack Overflow用户
提问于 2017-05-06 02:18:50
回答 1查看 305关注 0票数 1

我正在尝试安装"Haskell:函数式编程的手艺“第三版的代码。

我在Centos version7上使用的是GHCi 7.6.3版本。

然后:

代码语言:javascript
复制
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的知识需要学习,但如果知道安装是正常的就太好了!:)

EN

回答 1

Stack Overflow用户

发布于 2017-05-06 03:14:59

您有三个选项:

在你用

导入Control.Applicative

..。在开头的其他import行旁边添加一行。我怀疑你将不得不对其他模块做同样的事情,如果你做了这样的更改后,同样的错误出现在其他地方,并且可能有类似的nature.

  • Install更新版本(7.6.3来自2013)的其他问题。尽管默认的CentOS存储库不提供此功能,但还有其他选择,例如非官方的Fedora存储库和手动安装。请参阅instructions.

this page

#3是最终的解决方案。但是,如果你现在只想开始阅读这本书,你可以使用#1,并将重新安装留到以后。

为了便于参考,这里简要解释了这个问题(我将使用一些不熟悉的术语,但在研究Haskell的过程中,您很快就会了解它们)。有一个名为Applicative的重要类型类,由于历史原因,它没有与其他核心库很好地集成在一起。这种情况在GHC7.10中得到了纠正,它在前言中包括了Applicative (在Haskell程序中默认导入的模块),并使其有必要在缺少Applicative实例的许多地方添加它们。Craft3e包中的代码已更新,因此这些Applicative实例已就位(参见this entry in the book's blog),但是没有添加import Control.Applicative行,这是使更新的代码在较旧的GHC中工作所必需的,这些GHC在前言中没有Applicative,从而导致您看到的错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43811461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档