10 unstable releases (3 breaking)

0.4.0 Jan 17, 2021
0.3.5 Jan 17, 2021
0.2.2 Jan 9, 2021
0.1.0 Jan 9, 2021

#3 in #kanren

MIT/Apache

79KB
2K SLoC

miniKANREN

This is a Rust implementation of miniKANREN.

Syntax mapping

Originally, miniKANREN was implemented as a DSL in Scheme, inheriting Scheme's S-expression syntax.

This crate implements miniKANREN as a DSL in Rust, with obviously different syntax.

The table below illustrates how to map from one to the other:

Scheme Rust
(run* q (== q 1)) run!(*, q, eq(q, 1))
(conj a b c) conj!(a, b, c)
(disj a b c) disj!(a; b; c)

lib.rs:

Rust implementation of the miniKANREN relational logic language.

No runtime deps