Hi Eugene! I remember seeing Castor several years ago, and had a brief conversation with the creator of the library online. Here is part of the thread:
http://lists.boost.org/Archives/boost/2010/04/165654.php http://lists.boost.org/Archives/boost/2010/05/166240.php http://lists.boost.org/Archives/boost/2010/05/166263.php At the time it seemed Castor didn't provide full unification, although it seemed possible to add it. I'm not sure of the current state of the library. I would think you could add both full unification and backtracking to Castor. miniKanren uses a complete, interleaving search strategy, rather than incomplete depth-first search as in standard Prolog. miniKanren also uses the occur check for unification. And miniKanren's implementation uses only persistent data structures, without side effects. Those are the main differences between core (pure) miniKanren and core (pure) Prolog. More recent miniKanren's also support various constraints, including disequality constraints and other tree/symbolic constraints. These are very useful in writing interpreters are relations, for example. So a more extended Castor that was trying to be miniKanren-like would probably include these constraints. Hope this helps! Cheers, --Will On Sat, Mar 21, 2015 at 5:26 PM, Eugene Grigoriev <[email protected]> wrote: > There is a C++ LP implementation: http://www.mpprogramming.com/cpp/ > > It does not have explicit s-map, not explicit backtracking. It relies on > the host to provide both. > > If it would be extended to support interleaving streams using continuations, > how would it then compare with miniKanren? > > Is there some fundamental problem with not having an explicit s-map? > > -- > 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/d/optout. -- 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/d/optout.
