CHR
This package contains a library CHR
which provides an implementation of Constraint Handling Rules in Curry, an interpreter for CHR rules based on the refined operational semantics of Duck et al. (ICLP 2004), and a compiler into CHR(Prolog).
To use CHR(Curry), specify the CHR(Curry) rules in a Curry program, load it, add module CHR
and interpret or compile the rules with runCHR
or compileCHR
, respectively. This can be done in one shot with
> cpm curry :l MyRules :add CHR :eval 'compileCHR "MyCHR" [rule1,rule2]' :q
The directory examples
contains various CHR(Curry) example programs.
The structure and implementation of the CHR library is described in the following paper:
M. Hanus: CHR(Curry): Interpretation and Compilation of Constraint Handling Rules in Curry Proc. of the 17th International Symposium on Practical Aspects of Declarative Languages (PADL 2015) Springer LNCS 9131, pp. 74-89, 2015 Online