File size distribution: Difference between revisions

m
Line 466:
expandGroups :: Int -- ^ Desired number of frequency groups.
-> [Integer] -- ^ List of collected file sizes. Must be sorted.
-> Integer -- ^ Computed frequency group limit. Values above this will be further expanded.
-> FrequencyGroups -- ^ Initial 'FrequencyGroups'
-> FrequencyGroups -- ^ Expanded 'FrequencyGroups'
expandGroups gsize fileSizes groupThreshold
| groupThreshold > 0 = loop 15 $ frequencyGroups gsize fileSizes
| otherwise = idfrequencyGroups gsize fileSizes
where
loop 0 gs = gs -- break out in case we can't go below threshold
Line 580 ⟶ 579:
printf "%9s <-> %9s %7s\n" "From" "To" "Count"
putStrLn $ replicate 46 '-'
let results = expandedGroupsexpandGroups groupSize (sizes items) (groupThreshold fileCount) items
mapM_ (displayFrequency fileCount) $ Map.assocs results
where
sizes = sort . fileSizes
groupThreshold = round . (*0.25) . realToFrac</lang>
initialGroups n = frequencyGroups n . sizes
groupThreshold = round . (*0.25) . realToFrac
expandedGroups gsize sizes n =
expandGroups gsize sizes n . initialGroups gsize</lang>
{{out}}
<pre style="height: 50rem;">$ filedist ~/Music 1 ↵
Anonymous user