jam/test/test-logic.js

45 lines
1.0 KiB
JavaScript

var session = logic.create(null , function (msg) {
console.log(msg);
});
var db = [
'event(music).',
'event(theatre).',
'event(poetry).',
'event(stage).',
'event(guided_tour).',
'music(ev0001).',
'music(ev0002).',
'theatre(ev0003).',
'ort(ev0001,bremen).',
'ort(ev0003,bremen).',
'ort(ev0002,hamburg).',
'event_in(Ort,X) :- (music(X);theatre(X)),ort(X,Ort).',
]
var t0=time();
var parsed=session.consult(db.join('\n'));
print('consult',time()-t0,'ms');
print(parsed);
function answer(query) {
parsed=session.query(query);
print(parsed);
var result,results=[],error;
do {
session.answer(function (_result) {
result=_result;
if (result) {
var output=result.toString();
if (output.contains('throw(error')) {
return error=result.args[0].args;
}
if (output=='{}') output='true';
else output=output.replace(/{|}/g,'').replace(/\//,' = ');
results.push(output);
}
});
} while (result);
return results;
}
print(answer('event(X).'))
print(answer('event_in(bremen,X).'))