1.0.3 • Published 6 years ago
implications v1.0.3
const { engine, rule } = require("implications")
const firstRule = rule({
name: 'pretty',
implies: [ 'blue', 'shiny' ]
});
const secondRule = rule({
name: 'blue',
implies: [ 'colored' ]
});
const blueAndPretty = [ 'blue', 'pretty']
const blue = [ 'blue' ]
const pretty = [ 'pretty']
const anEngine = engine();
anEngine.addRules([ firstRule, secondRule ]);
anEngine.compile();
// [ 'blue', 'pretty', 'shiny', 'colored' ]
// Because pretty implies blue, and blue implies colored
anEngine.infer(blueAndPretty);
// [ 'blue', 'colored' ]
// Because blue implies colored
anEngine.infer(blue);
// [ 'pretty', 'blue', 'shiny', 'colored' ]
anEngine.infer(pretty);