Hi Evgenii! Sorry for the slow response.
Combining tabling with constraints is something I've wanted for a long time. > If I understand well, the problem with disequality is that master call of > tabled goal can skip some answers due to it's constraints. > Then the slave calls cannot observe these skipped answers even if they meet > slave's constraints. > > What if master call will produce all possible answers without looking at > constraints ? Then each slave call, when it inspects the cache, checks that > answer term satisfies slave's constraints. > The master call should also check its constraints. It can do that in "fake" > goal, that is added to the end of the original goal. > This fake goal first checks that answer is not in cache, adding this answer > to the cache if necessary (as in original implementation), and then checks > master's constraints. This might work. However, I'm worried that this might be hopelessly inefficient in many cases. One of the main reasons for having constraints like disequality is to avoid enumerating huge numbers of answers (or possibly infinitely many answers), and then having to check each answer. (Generate and test.) The proposed solution sounds a lot like generate and test to me. Maybe I don't fully understand your proposal, though. Of course, you can always try implementing it! :) -- 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 https://groups.google.com/group/minikanren. For more options, visit https://groups.google.com/d/optout.
