【发布时间】:2013-03-02 17:03:48
【问题描述】:
在 Real World Haskell 第 24 章的 Haskell 代码中,使用 MapReduce 计算文件中 LINES 数量的示例实现如下:
import qualified Data.ByteString.Lazy.Char8 as LB
lineCount :: [LB.ByteString] -> Int64
lineCount = mapReduce rdeepseq (LB.count '\n')
rdeepseq sum
我很清楚这是在计算换行符的数量。如果我想计算 a 的数量,我会这样做:
import qualified Data.ByteString.Lazy.Char8 as LB
lineCount :: [LB.ByteString] -> Int64
lineCount = mapReduce rdeepseq (LB.count 'a')
rdeepseq sum
我已经尝试过了,它确实有效。如何修改此代码以计算字符数(即存在的字符总数?是否有某种正则表达式框架我可以使用?
【问题讨论】:
-
使用
LB.length而不是count。