How does Data.Sequence <br><a href="http://www.haskell.org/ghc/docs/latest/html/libraries/containers/Data-Sequence.html" target="_blank">http://www.haskell.org/ghc/docs/latest/html/libraries/containers/Data-Sequence.html</a><br>
compares with ArrayRef for appending and accessing arrays efficiently ?<br><br><div class="gmail_quote">On Fri, Jul 11, 2008 at 4:58 PM, Chaddaï Fouché &lt;<a href="mailto:chaddai.fouche@gmail.com">chaddai.fouche@gmail.com</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">2008/7/11 Dmitri O.Kondratiev &lt;<a href="mailto:dokondr@gmail.com">dokondr@gmail.com</a>&gt;:<br>

<div class="Ih2E3d">&gt; I don&#39;t quite understand how Data.Array.Diff work.<br>
&gt; I tried this:<br>
&gt;<br>
&gt;&gt; let arr = listArray (1,3) [1..3] :: DiffArray Int Int<br>
&gt;<br>
&gt; then:<br>
&gt;&gt; replaceDiffArray arr [(1, 777)]<br>
&gt; array (1,3) [(1,1),(2,777),(3,3)]<br>
&gt; Why when replacing first element the second one changes?<br>
<br>
</div>replaceDiffArray is low-level, nobody should use it, use the normal<br>
IArray interface instead.<br>
(To answer your question, replaceDiffArray works with low level index,<br>
not the Ix class, all array are indexed by 0, 1, .. for it, so 1 is<br>
the index of the second element of the array)<br>
<div class="Ih2E3d"><br>
&gt; and also trying to add 4-th element results in:<br>
&gt; Prelude Data.Array.Diff&gt; replaceDiffArray arr [(4, 444)]<br>
&gt; array (1,3) [(1,1),(2,2),(3,3)]<br>
&gt;<br>
&gt; It looks like replaceDiffArray can not be used to add new element to the end<br>
&gt; of array?<br>
<br>
</div>No, the size of a DiffArray can&#39;t be changed : DiffArray are just an<br>
IArray instance with better performances for update than the classic<br>
IArray instance (which copy the entire content on every update...).<br>
<br>
There are some libraries that allows you to change the size of your<br>
array, be aware though that this operation is very costly (in every<br>
language).<br>
<a href="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/ArrayRef" target="_blank">http://hackage.haskell.org/cgi-bin/hackage-scripts/package/ArrayRef</a><br>
<font color="#888888"><br>
--<br>
Jedaï<br>
</font></blockquote></div><br><br clear="all"><br>