[Haskell-cafe] Implementing ParseChart with Data.Map

Duncan Coutts duncan.coutts at worc.ox.ac.uk
Mon Jun 2 18:28:29 EDT 2008


On Mon, 2008-06-02 at 22:35 +0200, Krasimir Angelov wrote:

> The problem with this is that both the Map and the Set are traversed
> twice. The first time from lookup/member and the second time from
> insert. Does someone have an idea how to do this with the current
> libraries?


> The chart manipulation is in the tight loop of my application so I
> need fast code. Any other ideas?

I'm not sure if it helps your application but we had a discussion on
#haskell the other day about Data.Map and were talking about a general
insert/modify/delete operator like:

modify :: k -> Map k e -> (e, Maybe e -> Map k e)

so it's a lookup that returns the element at k and also a continuation
that lets you rebuild a new map with an altered element. I guess that
doesn't account for the element not existing. There's probably a
generalisation that does.

Duncan



More information about the Haskell-Cafe mailing list