on master help sign in
fix file-io example to use Handle module
2b120d2Harendra Kumar
examples/FileIO.hs+7−7
@@ -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
5
5
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(..))
9
9
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
12
12
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
15
15
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)
23
23
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)
28
28
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)
35
35
@@ -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)
41 where
41 where
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)
43
43