File size distribution: Difference between revisions

m
→‎{{header|Haskell}}: optimize file collection
(Add Factor)
m (→‎{{header|Haskell}}: optimize file collection)
Line 441:
import GHC.Conc (getNumProcessors)
import System.Directory (doesDirectoryExist, doesFileExist,
getDirectoryContentslistDirectory,
pathIsSymbolicLink)
import System.Environment (getArgs)
Line 562:
pure []
where
tryCollect = do(fmap (folderPath </>) <$> listDirectory folderPath) >>= mapM f
where
contents <- fmap (folderPath </>) <$> getDirectoryContents folderPath
files <- filterMf doesFileExistp contents= do
folders <- drop 2 isFolder <$> filterM- doesDirectoryExist contentsp
if isFolder then
items <- mapM (\f -> File f <$> withFile f ReadMode hFileSize) files
pure $ items <> fmap pure $ Folder foldersp
else do
items <- mapM (\f -> File fsize <$>- withFile fp ReadMode hFileSize) files
pure $ File p size
 
parallelItemCollector :: FilePath -> IO [Item]
Anonymous user