[Haskell-cafe] Structural sharing in haskell data structures?
Jan-Willem Maessen
jmaessen at alum.mit.edu
Wed May 13 07:43:03 EDT 2009
I wanted to clear up one misconception here...
On May 13, 2009, at 12:19 AM, wren ng thornton wrote:
> In heavily GCed languages like Haskell allocation and collection is
> cheap, so we don't mind too much; but in Java and the like, both
> allocation and collection are expensive so the idea of cheap
> throwaway objects is foreign.
Not true! If you look at the internals of Clojure, you'll discover
they're using trees with *very* wide fanout (eg fanout-64 leaf trees
for lists). Why? Because it's so cheap to allocate and GC these
structures! By using shallow-but-wide trees we reduce the cost of
indexing and accessing list elements. I suspect you'd still be hard-
pressed to support this kind of allocation behavior in any of the
present Haskell implementations, and Haskell implementations of the
same kinds of structures have limited fanout to 2-4 elements or so.
Now, if only the Clojure structures supported efficient concatenation...
-Jan-Willem Maessen
>
> --
> Live well,
> ~wren
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
More information about the Haskell-Cafe
mailing list