<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div><div class="h5">Purity allows our data structures to have a lot of sharing.<br></div></div>

This is separate to laziness.<br></blockquote><div><br></div><div>Ah, so haskell does do it. Interesting that it so rarely comes up, whereas it&#39;s frequently mentioned in clojure.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<br>
Laziness lets us build up interesting structures that have unusual<br>
sharing.<br>
<br>
Actually, what kind of persistant structures does Clojure have at this<br>
stage? I was under the impression they were reusing Java data<br>
structures. E.g. some of the nicer ones on hackage are zippers, patricia<br>
tries, finger trees, which I can&#39;t imaging have been ported.<br></blockquote><div><br></div><div>It has some built-in persistent data structures: lists, vectors (arrays), maps, and sets. It also has strong interoperability with Java, so that any existing Java library can easily be used in Clojure code. In some ways, that makes it a VERY mature language already.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<font color="#888888"><br>
-- Don<br>
</font></blockquote></div><br>