Conlog

Started June 2, 2021

A simple prolog interpreter written in Rust with no external crate depedencies. It currently supports predicates, integers, strings, and lists, and will parse some infix operators including +, -, =, \=, and 'is'.

To run the REPL:

cargo run -- inputfile.plg

where "inputfile.plg" has an initial set of facts and rules to populate the database with. It will then accept input at the ?- prompt.

Try running the metro1.plg file and at the prompt enter:

?- murderer(X).

You should see a trace of the deduction and the final result:

Result: murderer(sir_raymond)

Some tests are also included, which can be run using:

cargo test

Get the Source

https://github.com/transistorfet/conlog

Or clone with:
git clone git@github.com:transistorfet/conlog