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

Reply via email to