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

Vel*_*ost 7 haskell

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

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

但是,当我这样做时:

ghc -O2 --make -threaded LineCount.hs
Run Code Online (Sandbox Code Playgroud)

(按照书中的说明),我得到的信息是:

MapReduce.hs:6:7: Not in scope: `rnf'
Run Code Online (Sandbox Code Playgroud)

我可能做错了什么?

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

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

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

Cla*_*bel 10

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

您可以parallel通过Google搜索"控制并行策略hackage"或点击此处在线查找软件包的内容.

  • @ yatima2975不是任何官方勘误表,但有这个问题和相应的答案:http://stackoverflow.com/q/23727768/126014我发现它不时有用. (2认同)