@@ -1,17 +1,17 @@
1import qualified Streamly.Prelude as S
1import qualified Streamly.Prelude as S
2import qualified Streamly.Fold as FL
2import qualified Streamly.Fold as FL
3import qualified Streamly.Mem.Array as A
3import qualified Streamly.Mem.Array as A
4−import qualified Streamly.FileSystem.File as File
4+import qualified Streamly.FileSystem.Handle as FH
6import Data.Char (ord)
6import Data.Char (ord)
7import System.Environment (getArgs)
7import System.Environment (getArgs)
8import System.IO (openFile, IOMode(..), stdout, Handle, hSeek, SeekMode(..))
8import System.IO (openFile, IOMode(..), stdout, Handle, hSeek, SeekMode(..))
10cat :: Handle -> IO ()
10cat :: Handle -> IO ()
11−cat src = File.writeArrays stdout $ File.readArraysUpto (256*1024) src
11+cat src = FH.writeArrays stdout $ FH.readArraysUpto (256*1024) src
13cp :: Handle -> Handle -> IO ()
13cp :: Handle -> Handle -> IO ()
14−cp src dst = File.writeArrays dst $ File.readArraysUpto (256*1024) src
14+cp src dst = FH.writeArrays dst $ FH.readArraysUpto (256*1024) src
16ord' :: Num a => Char -> a
16ord' :: Num a => Char -> a
17ord' = (fromIntegral . ord)
17ord' = (fromIntegral . ord)
@@ -19,17 +19,17 @@ ord' = (fromIntegral . ord)
19wcl :: Handle -> IO ()
19wcl :: Handle -> IO ()
20wcl src = print =<< (S.length
20wcl src = print =<< (S.length
21 $ FL.splitSuffixBy (== ord' '\n') FL.drain
21 $ FL.splitSuffixBy (== ord' '\n') FL.drain
22− $ File.read src)
22+ $ FH.read src)
24grepc :: String -> Handle -> IO ()
24grepc :: String -> Handle -> IO ()
25grepc pat src = print . (subtract 1) =<< (S.length
25grepc pat src = print . (subtract 1) =<< (S.length
26 $ FL.splitOn (A.fromList (map ord' pat)) FL.drain
26 $ FL.splitOn (A.fromList (map ord' pat)) FL.drain
27− $ File.read src)
27+ $ FH.read src)
29avgll :: Handle -> IO ()
29avgll :: Handle -> IO ()
30avgll src = print =<< (FL.foldl' avg
30avgll src = print =<< (FL.foldl' avg
31 $ FL.splitSuffixBy (== ord' '\n') FL.length
31 $ FL.splitSuffixBy (== ord' '\n') FL.length
32− $ File.read src)
32+ $ FH.read src)
33 where avg = (/) <$> toDouble FL.sum <*> toDouble FL.length
33 where avg = (/) <$> toDouble FL.sum <*> toDouble FL.length
34 toDouble = fmap (fromIntegral :: Int -> Double)
34 toDouble = fmap (fromIntegral :: Int -> Double)
@@ -37,7 +37,7 @@ llhisto :: Handle -> IO ()
37llhisto src = print =<< (FL.foldl' (FL.classify FL.length)
37llhisto src = print =<< (FL.foldl' (FL.classify FL.length)
38 $ S.map bucket
38 $ S.map bucket
39 $ FL.splitSuffixBy (== ord' '\n') FL.length
39 $ FL.splitSuffixBy (== ord' '\n') FL.length
40− $ File.read src)
40+ $ FH.read src)
42 bucket n = let i = n `div` 10 in if i > 9 then (9,n) else (i,n)
42 bucket n = let i = n `div` 10 in if i > 9 then (9,n) else (i,n)