Hello fellow Clojurians,

As some of you may know I've been doing a bit of research into efficient
predicate dispatch, generic methods, and state-of-the-art implementations of
pattern-matching in OCaml. After a bit of reading and prototyping, I'm quite
confident that it's possible to build something considerably more powerful
than generic methods or predicate dispatch that exhibits the performance of
the fastest pattern matching algorithms to be found in Standard ML, Haskell,
Ocaml, and Scala (without their numerous limitations).

The main innovation here is to use logic programming to drive the
compilation to decisions tree as some members of the ML family do. This
gives us the following:

- Open quality of CLOS generic methods
- User customizable specializers like CLOS
- Removes order requirements of ML style pattern matching
- Richer reasoning about errors beyond just non-exhaustiveness.

I plan on continuing to tackle this myself, but I'm putting this out there
to see if anyone else is interested in joining forces. This project isn't
nearly as daunting as it sounds. The OCaml aglorithms are well described and
we already have a logic engine - core.logic.

I think the project would find very wide use w/in the Clojure community and
I think it would be a great opportunity to accomplish the following:

- Learn how to write very, very high performance Clojure (6X-20X faster than
multimethods)
- Leverage relational/logic programming in a functional context
- Give Clojure a notable feature that any sufficiently advanced programming
language should be quite jealous of :D

Ping me on or off list if you'd like collaborate!

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