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.

Reply via email to