真实世界的Haskell代码没有编译?

时间:2013-03-01 00:20:18

标签: haskell

我正在尝试在Real World Haskell中编译一些代码 - 第24章LineCount.hs。

我没有对代码进行任何更改。

然而,当我这样做时:

ghc -O2 --make -threaded LineCount.hs

(按照书中的说明),我收到了消息:

MapReduce.hs:6:7: Not in scope: `rnf'

我可能做错了什么?

快速搜索显示过去的包并行和严格并发存在一些问题,重新安装它们会解决问题。但是,我试过了,它没有用。此外,值得注意的是,该问题在2010年的某个时候得到了修复: https://groups.google.com/forum/?fromgroups=#!msg/happs/gOieP4xfpNc/nrasm842JlUJ

注意:在同一章中编译其他文件时,我会收到各种其他错误。例如,在编译Strat.hs时,我得到:模块Control.Parallel.Strategies' does not export parZipWith'。在编译LineChunks.hs时,我得到:模块Control.Parallel.Strategies' does not export rnf'。

老实说,作为一名新手Haskell程序员,一旦我开始修改代码,我预计会遇到麻烦 - 但我没想到书中的代码有问题!

1 个答案:

答案 0 :(得分:10)

该函数不再被称为rnf。它现在被称为rdeepseq。只需更换它。 :)

您可以通过Google搜索“控制并行策略hackage”或点击here在线查找parallel包的内容。

相关问题