[Haskell-cafe] Newbie: Appending arrays?

Jefferson Heard jefferson.r.heard at gmail.com
Thu Jul 10 14:59:04 EDT 2008


Two questions.  How often does the array change, and how big does it
get?  It may well be that you just copy it and take the hit, as
that'll be cheaper (even in C, incidentally) than any other solution,
if it's a short array or if the updates happen rarely.

If not, try using Data.Array.Diff and replaceDiffArray.  This is
usually fairly efficient for most applications.

By the way, depending on the type of the data you're putting into
these arrays, Data.ByteString might be a good choice as well.

On Thu, Jul 10, 2008 at 12:12 PM, Felipe Lessa <felipe.lessa at gmail.com> wrote:
> 2008/7/10 Dmitri O.Kondratiev <dokondr at gmail.com>:
>> allows construct an array of a fixed size. How to add more elements to the
>> array later?
>
> I can't really answer your question, however I bet that it would
> require allocating another, bigger array and copying the old elements
> over, at least from time to time. So you may want to take a look at
> Data.Sequence[1], supporting O(1) append on both sides and (sort of)
> O(log i) for accessing the i-th element.
>
> [1] http://www.haskell.org/ghc/docs/latest/html/libraries/containers/Data-Sequence.html
>
> HTH,
>
> --
> Felipe.
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>



-- 
I try to take things like a crow; war and chaos don't always ruin a
picnic, they just mean you have to be careful what you swallow.

-- Jessica Edwards


More information about the Haskell-Cafe mailing list