Thanks David! This is great! I have a large test suite of symbolo/numbero tests from miniKanren. Should I add them/send you a pull request?
On Sat, Feb 8, 2014 at 12:09 PM, David Nolen <[email protected]> wrote: > While I haven't been able to come up with a general solution to the problem > of incompatible constraints, core.logic now has a relatively efficient means > for users to check for incompatible constraint combinations in the > constraint store themselves. > > For example, it's now possible to write numbero and symbolo without > modifications to core.logic itself such that: > > (run* [q] > (numbero q) > (symbolo q)) > > will fail. The idea is that users are provided a hook that is run *before* > the constraint is actually added to the constraint store. This hook is given > the constraint store so that users can inspect the contents of the store in > order to determine whether an impossible combination of constraints on a > variable(s) is about to be introduced. It is fail fast. > > I believe this allows user to build out sound, efficient constraint solvers. > Granted, it does not solve the general problem of how to determine soundness > between arbitrary constraint domains. I'm beginning to suspect that for this > to work in the general case we need to maintain runtime domain information > (like tags) and provide a hierarchy of relationships between those domains > (a tower of terms?). > > David > > -- > You received this message because you are subscribed to the Google Groups > "minikanren" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/minikanren. > For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups "minikanren" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/minikanren. For more options, visit https://groups.google.com/groups/opt_out.
