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
私はこれを試しましたが、うまくいきます。このコードを変更して文字数 (つまり、存在する文字の総数) をカウントするにはどうすればよいですか?使用できる正規表現フレームワークはありますか?