@@ -1,11 +1,19 @@
11import System.Environment
2−import qualified Data.ByteString as B
3−import qualified Data.ByteString.Lazy as BL
2+import qualified Data.ByteString.Char8 as B
3+import qualified Data.ByteString.Lazy.Char8 as BL
44import qualified Data.Text as T
55import qualified Data.Text.Encoding as T
66import qualified Data.Text.Lazy as TL
77import qualified Data.Text.Lazy.Encoding as TL
88
9+bytestring haystack = do
10+ ls <- B.lines `fmap` B.readFile haystack
11+ print . sum . map (\needle -> length . filter (==needle) $ ls) $ take 100 ls
12+
13+lazyBytestring haystack = do
14+ ls <- BL.lines `fmap` BL.readFile haystack
15+ print . sum . map (\needle -> length . filter (==needle) $ ls) $ take 100 ls
16+
917text haystack = do
1018 ls <- (T.lines . T.decodeUtf8) `fmap` B.readFile haystack
1119 print . sum . map (\needle -> length . filter (==needle) $ ls) $ take 100 ls
@@ -21,6 +29,8 @@ string haystack = do
2129main = do
2230 args <- getArgs
2331 case args of
32+ ["bs",h] -> bytestring h
33+ ["lazybs",h] -> lazyBytestring h
2434 ["text",h] -> text h
2535 ["lazytext",h] -> lazyText h
2636 ["string",h] -> string h