[Haskell-cafe] Destructive updates to plain ADTs

Milan Straka fox at ucw.cz
Tue Sep 11 09:49:25 CEST 2012


Hi,

> > is there any way to perform a destructive update on a plain ADT?
> 
> Hi Milan, perhaps this is a dumb question, but given that you're using a lazy 
> functional language: why do you want to do destructive updates at all?
> 
> Perhaps you'd be better off using an imperative/object-oriented language?

I am one of the maintainers of the containers package, so I definitely
want to stick to Haskell :)

The reason for me wanting to do destructive updates is speed -- if
I could perform destructive updates during the construction of
persistent structure (e.g., inside Data.Map.fromList), the performance
would improve.

> > ... I would like just to run some benchmarks and see the results.
> 
> Running benchmarks for destructive updates in Haskell seems a waste of time(?)

Johan successfully improved unordered-containers by using destructive
updates during construction, but he is using Array# where destructive
updates are possible. I was wondering if I could do similar thing in
containers...

Cheers,
Milan



More information about the Haskell-Cafe mailing list