Coroutines
This commit is contained in:
29
src/main.rs
29
src/main.rs
@ -1,19 +1,36 @@
|
||||
use nanolog::ast::{Body, Module, Predicate};
|
||||
use corosensei::Coroutine;
|
||||
use nanolog::ast::Body;
|
||||
use nanolog::ast::Module;
|
||||
use nanolog::ast::Predicate;
|
||||
|
||||
fn main()
|
||||
{
|
||||
env_logger::builder()
|
||||
.filter_level(log::LevelFilter::Info)
|
||||
.format_timestamp(None)
|
||||
.format_module_path(false)
|
||||
.init();
|
||||
//println!("{:#?}", Module::parse_from_file("1.pl"));
|
||||
let module: Module = "
|
||||
integer(zero).
|
||||
integer(s(X)) :- integer(X).
|
||||
add(X, zero, X).
|
||||
add(X, s(Y), Z) :- add(s(X), Y, Z).
|
||||
"
|
||||
.into();
|
||||
|
||||
let a: Predicate = "zero".into();
|
||||
let b: Predicate = "X".into();
|
||||
// let a: Predicate = "integer(s(zero))".into();
|
||||
// let b: Predicate = "integer(s(X))".into();
|
||||
//
|
||||
// println!("{:?}", a.unify(&b));
|
||||
|
||||
println!("{:?}", a.unify(&b));
|
||||
let body: Body = "add(s(s(zero)), s(zero), s(s(s(zero))))".into();
|
||||
let body: Body = "add(s(zero), s(zero), X).".into();
|
||||
body.prove_in_module(&module).next().next();
|
||||
|
||||
// let body: Body = "integer(s(s(s(s(zer))))).".into();
|
||||
// body.prove(&module);
|
||||
// let body: Body = "integer(X).".into();
|
||||
// body.prove_in_module(&module).next().next();
|
||||
|
||||
//println!("{}", module);
|
||||
//
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user