Canrun is a logic programming library inspired by the *Kanren family of language DSLs.
- Intro blog post: https://esimmler.com/announcing-canrun/
- How it works (part 1): https://esimmler.com/building-canrun-part-1/
Status: Exploratory and Highly Experimental
I'm still quite new to both Rust and logic programming, so there are likely to be rough edges. At best it may be a useful implementation of something that resembles the core concepts of a Kanren while being idiomatically Rusty. At worst it may just be a poor misinterpretation with fatal flaws.
Quick Start
use ;
use ;
let x = new;
let y = new;
let goal = both;
let result: = goal.query.collect;
assert_eq!