Id doesn´t have to create a copy of the original object  ( I infer this from referential transparency) so the new list must store the same original reference. Any pure structure would conserve references  after id. filter as far as I know. Am I wrong?<br>
<br><br>
<div class="gmail_quote">2010/4/8 Dan Piponi <span dir="ltr">&lt;<a href="mailto:dpiponi@gmail.com">dpiponi@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">I have a situation where I have a bunch of lists and I&#39;ll frequently<br>be making new lists from the old ones by applying map and filter. The<br>
map will be applying a function that&#39;s effectively the identity on<br>most elements of the list, and filter will be using a function that<br>usually gives True. This means that there is potential for a large<br>amount of sharing between these lists that could be exploited,<br>
something that ordinary lists would do badly. Does anyone have a<br>recommendation for a pure functional data structure for this case?<br><br>(It reminds me a bit of my own antidiagonal type, but that&#39;s not well<br>adapted to the highly dynamic situation I&#39;m describing.)<br>
<font color="#888888">--<br>Dan<br>_______________________________________________<br>Haskell-Cafe mailing list<br><a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br><a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</font></blockquote></div><br>