Logos is finally in good enough shape to be worth publishing to Clojars. There are really too many changes to enumerate here, but if you're familiar with Prolog, Logos is now far enough along that you can basically write Prolog in Clojure and then some. Here's the evidence:
(defn-e nqueens-o [l] ([()]) ([[[?x ?y] . ?others]] (exist [] (nqueens-o ?others) (member-o ?y [1 2 3 4 5 6 7 8]) (noattack-o [?x ?y] ?others)))) (defn-e noattack-o [q others] ([_ ()]) ([[?x ?y] [[?x1 ?y1] . ?others]] (exist [] (!= ?y ?y1) (nonrel/project [?y ?y1 ?x ?x1] (!= (- ?y1 ?y) (- ?x1 ?x)) (!= (- ?y1 ?y) (- ?x ?x1))) (noattack-o [?x ?y] ?others)))) The big changes are: * Pattern matching * Goals can be tabled a la XSB * Fairly efficient implementation of disequality constraints (and programs w/o constraints are not penalized) I've been begun porting some examples from Bratko's excellent Prolog book as a guide for those who are interested here https://github.com/swannodette/bratko-logos. A note on performance: when the search space is not small Logos doesn't perform as well as Prolog since it uses an interleaving strategy, and this interleaving is currently implemented via liberal thunking. While I'm interested in making Logos faster, I think many of the kinds of search problems that are currently slower in Logos than in Prolog are best solved with Constraint Logic Programming anyhow - which is the next major feature for Logos. Enjoy, 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