Dear Clojure community, clojure2minizinc provides an interface between state-of-the-art constraint solvers (via MiniZinc) and Clojure. The clojure2minizinc user models in Clojure constraint satisfaction or optimisation problems over Boolean, integer, real number, and/or set variables. clojure2minizinc translates them into MiniZinc, they are solved in the background by a FlatZinc-compatible solver, and the result is read back into Clojure. clojure2minizinc code can be very similar to the corresponding MiniZinc code, but in addition the full power of Clojure is at hand.
In the Clojure community there already exists an interest in Constraint Programming (and the related Logic Programming paradigm), and solvers have been developed for Clojure. In contrast to core.logic, clojure2minizinc does not support Logic Programming (e.g., it does not provide unification of arbitrary terms), but focusses on Constraint Programming only. Also unlike core.logic, clojure2minizinc does not implement any new solver from scratch. MiniZinc provides an interface to a range of existing state-of-the-art constraint solvers, and supports Constraint Programming in a clear more mature way than core.logic -- clojure2minizinc inherits its capabilities. MiniZinc supports several variable domains (Booleans, integers, floats, and set of integers), a rich set of constraints (including many global constraints), reified constraints (i.e., the truth value of constraints can in turn be constrained by logic relations such as implication or equivalence), and optimisation support. Perhaps most importantly, MiniZinc's 3rd-party solvers implement highly efficient search strategies. This is the very first release. clojure2minizinc is far from being finished, but enough is already working that it might be interesting :) For more information including installation details please visit http://tanders.github.io/clojure2minizinc/ A tutorial is available at http://tanders.github.io/clojure2minizinc/tutorial.html -- 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/d/optout.