What is it?
What it can do
It can solve simple stuff, for instance N-queen problem. It supports tail recursion.
- Parser doesn't support operators. Use function call notation:
=(X, Y), is(Z, +(1, X)).
- It has a very limited set of built-in predicates.
- Current implementation is slow. Finding all solutions of N-queen problem takes about 25 seconds on Intel i5-3570.
Preliminary string support
Jsprolog features rudimental support for strings:
- Double quoted text is parsed as a list of character codes.
\"to mask double quote (NB: remember to escape
- No built-in predicates to work with strings.
- Will be replaced with string type in future.
How to use
npm i jsprolog
Please note that the project is far from stabilization and the API will surely change at some point in the future.
var Prolog = ;var db = PrologParserquery = PrologParseriter = PrologSolver;whileiternextconsole;
Also refer to specs/prologSolverSpec.js for usage examples.
Supported built-in predicates
|=/2||Doesn't support cyclic terms.|
|is/2||Supports only +,-,/,*. Silently fails on error.|