project-m36-0.4: src/lib/ProjectM36/MiscUtils.hs
module ProjectM36.MiscUtils where
--returns duplicates of a pre-sorted list
dupes :: Eq a => [a] -> [a]
dupes [] = []
dupes [_] = []
dupes [x,y] = [x | x == y]
dupes (x:y:xs) = dupes(x:[y]) ++ dupes(y : xs)
--Data.Vector.indexed but for lists
indexed :: [a] -> [(Int, a)]
indexed = go 0
where
go _ [] = []
go i (v:ys) = (i,v):go (i+1) ys