on eb5ea09 help sign in
streamly/src/Streamly/Examples/ListDirRecursive.hs
19 lines 757 B history raw
1{-# LANGUAGE FlexibleContexts #-}
3module Streamly.Examples.ListDirRecursive where
5import Path.IO (listDir, getCurrentDir)
6import System.IO (stdout, hSetBuffering, BufferMode(LineBuffering))
7import Streamly
9listDirRecursive :: IO ()
10listDirRecursive = do
11 liftIO $ hSetBuffering stdout LineBuffering
12 runStreamT $ getCurrentDir >>= readdir
13 where readdir d = do
14 (ds, fs) <- lift $ listDir d
15 liftIO $ mapM_ putStrLn $ map show fs ++ map show ds
16 --foldWith (<>) $ map readdir ds -- serial
17 --foldWith (<=>) $ map readdir ds -- serial interleaved
18 foldWith (<|) $ map readdir ds -- concurrent left biased
19 --foldWith (<|>) $ map readdir ds -- concurrent interleaved