[Haskell-cafe] Re: Incremental array updates
Daniel Kraft
d at domob.eu
Thu Feb 26 13:27:10 EST 2009
Ross Paterson wrote:
> On Thu, Feb 26, 2009 at 05:31:34PM +0100, Daniel Kraft wrote:
>> Well, my main problem was the lazy evaluation...
>
> No, your main problem was that you were creating 100,000 arrays,
> each only a little different from the one before.
Here I have to disagree (in my particular situation). Even with
Data.Array but the strict evaluation the program took about 5m, where it
before wouldn't even get far because of all that memory swapping...
With STUArray it took 1m--much better, but the worst of all was the
horrific memory usage.
>> For this example program... yes of course :) I'm trying to do so when
>> possible, but for my real problem I couldn't figure out a nice way to do
>> it like that, unfortunately. Which does not mean it is impossible of
>> course, but maybe just I need more experience in functional
>> programming... :D
>
> Writing imperative programs in Haskell may not be the best way to gain
> that experience. What is the pattern of updates in your actual program?
It was about this: I needed to generate "all possibilities" for some
combinations and each of those had a numeric property, say from 1 to
10000; I then had to count how many of the possibilities were of a given
"category". So I created this array, generated all combinations, and
incremented the matching slot each time.
I do not see how I could have done this another way, but I think it
should be a fairly common pattern, so if there are ideas, I'd welcome them!
Daniel
More information about the Haskell-Cafe
mailing list