I have a question about the presentation. You mention that you can't achieve the same dispatching performance in the open case compared to the closed space.
Lets ignore the namespace issue (maybe by restricting ourselves to only one namespace). Also lets assume the predicate ordering is solved. You define new predicates with extend-pred. In my imaginary implementation, extend-pred takes the predicate label, the pattern, and the code to be executed (note its code, not a function, so you lose the ability to make closures). Each time extend- pred is run, a new dispatch tree is compiled with the code to be executed integrated into the tree. (This would be done by saving (and updating) the code and patterns in a data structure that gets parsed and generates code that is the match macro wrapped into a function.) Overall, the only difference between the closed vs open case is the closed case is inline in the calling code where as the open case, you need a branch to call the maintained dispatch tree code. Is there something I'm missing that makes the open case require more branching? -Brent On Aug 18, 1:42 pm, David Nolen <dnolen.li...@gmail.com> wrote: > In case you didn't see this elsewhere: > > http://vimeo.com/27860102 > > David -- 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