From 09ff5f929853cc2ba1a1ed7ddb20566cd8fe021d Mon Sep 17 00:00:00 2001 From: LLLL Colonq Date: Fri, 11 Sep 2026 15:47:34 -0400 Subject: More Datalog --- crates/elfmind/src/main.rs | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'crates/elfmind/src/main.rs') diff --git a/crates/elfmind/src/main.rs b/crates/elfmind/src/main.rs index 748ca9d..cd811f7 100644 --- a/crates/elfmind/src/main.rs +++ b/crates/elfmind/src/main.rs @@ -6,44 +6,44 @@ fn main() { let mut db = Database::default(); db.add_fact(Relation::TimeIs(Hole::Val(6))); db.add_fact(Relation::TimeIs(Hole::Val(7))); - db.add_fact(Relation::HasItem(Hole::Val(character::Character::Tyumici), Hole::Val(item::Item::Apple))); - db.add_fact(Relation::FriendOf(Hole::Val(character::Character::Bobo), Hole::Val(character::Character::Naesten))); + db.add_fact(Relation::HasItem((Hole::Val(character::Character::Tyumici), Hole::Val(item::Item::Apple)))); + db.add_fact(Relation::FriendOf((Hole::Val(character::Character::Bobo), Hole::Val(character::Character::Naesten)))); let vt = ctx.var("time"); let vi = ctx.var("item"); db.add_rule(Rule { - head: Relation::UsedItemAt( + head: Relation::UsedItemAt(( Hole::Val(character::Character::Tyumici), Hole::Var(vi), Hole::Var(vt), - ), + )), body: vec![ Relation::TimeIs(Hole::Var(vt)), - Relation::HasItem(Hole::Val(character::Character::Tyumici), Hole::Var(vi)), + Relation::HasItem((Hole::Val(character::Character::Tyumici), Hole::Var(vi))), ], }); let vt = ctx.var("time"); let vc = ctx.var("char"); db.add_rule(Rule { - head: Relation::FriendOf( + head: Relation::FriendOf(( Hole::Val(character::Character::Naesten), Hole::Var(vc), - ), + )), body: vec![ Relation::TimeIs(Hole::Var(vt)), - Relation::UsedItemAt(Hole::Var(vc), Hole::Val(item::Item::Apple), Hole::Var(vt)), + Relation::UsedItemAt((Hole::Var(vc), Hole::Val(item::Item::Apple), Hole::Var(vt))), ], }); let vc1 = ctx.var("char"); let vc2 = ctx.var("char"); let vc3 = ctx.var("char"); db.add_rule(Rule { - head: Relation::FriendOf( + head: Relation::FriendOf(( Hole::Var(vc1), Hole::Var(vc3), - ), + )), body: vec![ - Relation::FriendOf(Hole::Var(vc1), Hole::Var(vc2)), - Relation::FriendOf(Hole::Var(vc2), Hole::Var(vc3)), + Relation::FriendOf((Hole::Var(vc1), Hole::Var(vc2))), + Relation::FriendOf((Hole::Var(vc2), Hole::Var(vc3))), ], }); db.apply_rules(); -- cgit v1.3.1