toychr
This folder contains a Logtalk port of ToyCHR, a reference implementation of Constraint Handling Rules (CHR) available from:
https://www.comp.nus.edu.sg/~gregory/toychr/
The port is work in progress and includes significant modifications to the original code:
Instead of compiling
.chr
files, it uses the term-expansion mechanism, by definingtoychrdb
as a hook object, to support writing rules inside objects and categories. As a consequence, the originalchr_compile/1
is not available.The port is portable and should run on all supported backends.
The port also includes examples ported from the SWI-Prolog CHR package examples and documentation. These examples are ported using the same license of the original code (BSD-2-Clause).
For sample queries, please see the SCRIPT.txt
file.
API documentation
Open the ../../docs/library_index.html#toychr link in a web browser.
Loading
To load all entities in this port, load the loader.lgt
file:
| ?- logtalk_load(toychr(loader)).
Testing
To test this port predicates, load the tester.lgt
file:
| ?- logtalk_load(toychr(tester)).