4 ms·
I think there is still value in minikanren since it uses a different evaluation strategy than Prolog. While Prolog just has to support backtracking when things
by slaymaker1907 5y ago
I think there is still value in minikanren since it uses a different evaluation strategy than Prolog. While Prolog just has to support backtracking when things fail, minikanren requires much more interleaving of code paths.
In terms of implementation, you can probably implement backtracking good enough for Prolog via backtracking, but you really need immutable maps for minikanren due to the interleaving. On the prolog side of things, prolog implementations typically care a lot more about being able to dynamically interact with the database including adding/retracing goals. Finally, minikanren tends to play nicer when combined with another language compared to prolog so it might be interesting to do include have it embedded in another language.