在 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
我已经尝试过了,它有效。如何修改此代码以计算字符数(即存在的字符总数?我可以使用某种正则表达式框架吗?