Skip to content
Falco Nogatz edited this page May 5, 2015 · 2 revisions
  • Provide an option to bundle the chr/runtime references to get a single-file package executable for example in browsers.
  • Add event emitters for rule application etc to provide an easy logging and debugging mechanism.
  • Allow arithmetic patterns in the rule's head, for example upto(Max), fib(N-1,V1), fib(N,V2) ==> N < Max | fib(N+1,V1+V2);
  • Add rules on the fly, for example CHR.Rules.add('b ==> c').
  • Add logical variables, i.e. support calling CHR.leq($.A, $.B); CHR.leq($.B, $.A); console.log($.A === $.B) in the /examples/leq.chr snippet.
  • JIT-Compilation, i.e. support calling var CHR = require('./fib.chr').
  • Consider using ES6 Template Strings.
  • Use Promises instead of return this in constraint calling function, i.e. allow CHR.fib(1,1).fib(2,1).upto(10000).then(function onFinish() { ... }) to call on finish of all rule applications. This would also allow to add constraints in parallel.
Clone this wiki locally