Arrays and arrays

Hal Daume III hdaume@ISI.EDU
Tue, 21 Jan 2003 07:21:50 -0800 (PST)


You shouldn't try to write these functions.  You should do all array
modifications within the ST monad, rather than looking for a pure
solution.

 - Hal

--
Hal Daume III

 "Computer science is no more about computers    | hdaume@isi.edu
  than astronomy is about telescopes." -Dijkstra | www.isi.edu/~hdaume

On 21 Jan 2003, Ketil Z. Malde wrote:

> ketil@ii.uib.no (Ketil Z. Malde) writes:
> 
> >>   replace :: UArray Int Int -> [(Int,Int)] -> UArray Int Int
> >>   replace a p = runST (thaw a >>= \u -> update u p >> freeze u)
> >> 
> >>   update :: STUArray s Int Int -> [(Int,Int)] -> ST s ()
> >>   update u ps = mapM_ (uncurry (writeArray u)) ps
> 
> > (I'll be right back with the benchmarks.)
> 
> I know you're all eagerly waiting for this, so here's a small progress
> report.  Or lack-of-progress report, if you like.
> 
> Apparently, I get really huge memory consumption when using the above
> repeatedly.  Normally, I can deal with it, but profiling (-h) doesn't
> show any likely culprit, the curves stay well below 60k for the most
> part.  I know there are different kinds of memory profiles (retainer
> profile, etc), is that where I have too look?  Or is the problem
> something else?
> 
> -kzm
> -- 
> If I haven't seen further, it is by standing in the footprints of giants
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>