tomasr8 / brolog

Prolog interpreter written in Python

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Brolog - Prolog interpreter written in Python

Installation

pip install brolog

CLI usage

brolog input.pl
?- list([]).
true.

?- list([1,2]).
true.

?- append(X, Y, [1,2,3]).
X = [1,2],
Y = 3.

?- append([1], X, [4,5]).
false.

Using this file as input:

list([]).
list([_|T]) :- list(T).

append([], X, [X]).
append([H|T], X, [H|R]) :- append(T, X, R).

Supported builtins

  • Lists: [H|T], [1,2], ..
  • Cut: !
  • Arbitrary symbolic functions: f(), g(a, b), ..

TODO

  • (WIP) Use networkx to generate the SDL tree of a query
  • Add more commonly used builtins

About

Prolog interpreter written in Python

License:MIT License


Languages

Language:Python 100.0%