Skip to content

Map/Set range function

Data.Map seems to lack a way to perform range queries like "fetch all elements between keys low and high". The naive implementation is easy:

range :: Ord k => k -> k -> Map.Map k v -> [(k,v)]
range low high = toList . fst . split high . snd . split low

But this is not very fast for larger maps. Maybe this operation could be provided in Data.Map?

Edited by jpbernardy
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information