[GHC] #720: Map/Set range function

GHC trac at galois.com
Fri Mar 10 15:38:50 EST 2006


#720: Map/Set range function
------------------------------+---------------------------------------------
  Reporter:  jpbernardy       |          Owner:         
      Type:  feature request  |         Status:  new    
  Priority:  normal           |      Milestone:         
 Component:  libraries/base   |        Version:  6.4.1  
  Severity:  normal           |     Resolution:         
  Keywords:  collections      |             Os:  Unknown
Difficulty:  Unknown          |   Architecture:  Unknown
------------------------------+---------------------------------------------
Old description:

> 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?

New description:

 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?

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/720>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the Glasgow-haskell-bugs mailing list