Range queries and Data.Map

Einar Karttunen ekarttun at cs.helsinki.fi
Fri Mar 10 15:27:25 EST 2006


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?

- Einar Karttunen

More information about the Libraries mailing list