I used CLIPS (another forward-chaining rule system) for several years, and
the way I tend to explain it to people is that it is the best tool for the
job when your code would look like an enormous cond with thousands of
cases, executed over and over, because:

1.  The Rete algorithm can "jump to the right branch" more efficiently than
testing each case one by one in some linear order.
2.  When you have thousands of cases, it can be difficult to ensure that
they are in exactly the right order and/or don't overlap.  Forward-chaining
systems let you express the cases more declaratively and apply precedence
rules judiciously rather than thinking about precedence all the time.

I think a forward-chaining system would also make a great foundation for a
project that requires some sort of dataflow architecture.

I agree with Ryan that it tends to be useful in different contexts than
constraint solvers.

-- 
-- 
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