mini-kanren 0.4.0

miniKANREN in Rust
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 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)`            |