I thought last night I had not stated the exact root problem, so I'm glad you brought it up. It is an underlying assumption with my co-workers, but out of that context it is important to state it explicitly.
The issue is perplexity <http://en.wikipedia.org/wiki/Perplexity>. The tree is built root to leaf. Along that path it produces, with big data sets, enormous perplexity. So the problem is when you know what you want, using the tree reveals an interesting consequence of it's construction. You can start at the root and find any node you want. However, you don't know where they are and you must navigate at times many, many branches. In fact you can't know you've found all of your data until you scanned the entire tree. Since the tree for even the most modest use case is going to have a very high perplexity this really isn't an option. However if you know where the data is within the tree and the information you want is the path to the root and that path has a perplexity of 0, the obvious answer is to have a tree that you can index into and get what you need. yesterday i finally solved the problem without mutability and without getting terribly fancy. One of my issues in going from OO to FP has been abstraction. What is wonderful and awful at the same time with OO is heavy abstraction. FP is much less abstract and transcendental. I replaced pointers with array positions and created structures in a set of arrays that allow me to find what I want and backtrack following a simple functional process. I am actually doing the implementation today. I think the proof of concept will probably end up being at most 2 printed pages of functions when I am done. Once that is working I'll be able to construct a Datomic built version of the algorithm and I think that is where it will become capable of working on any dataset. ^^^ High perplexity ^^^ Low perplexity :-) -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.