Ukanren
Pllib
An Elementary Prolog Library
Rethinking Prolog
The strong points of Prolog can be brought into an ordinary functional programming language. Using OCaml as a representative, we implement lazy guessing as a library, with which we reproduce classical Prolog examples.