Crate mini_kanren

Source
Expand description

Rust implementation of the miniKANREN relational logic language.

Re-exports§

pub use prelude::*;

Modules§

core
Core data structures and logic algorithms
database
A simple relational database
goals
Library of goals
prelude
testing

Macros§

conda
Creates a goal that succeeds if any of its lines succeeds. Only the first line that succeeds can contribute values.
conde
Creates a goal that succeeds if any of its lines succeeds. Every successful line contributes one or more values.
condu
Condu! behaves like conda!, except that a successful line succeeds only once.
conj
Creates a goal that succeeds if all of its subgoals succeed
db_facts
Insert facts into databases.
db_rel
Defines a database relation.
defmatch
Define a relation. A relation is a function that creates a goal.
defrel
Define a relation. A relation is a function that creates a goal.
disj
Creates a goal that succeeds if any of its subgoals succeeds
fresh
Bind fresh variables with scope inside the body of fresh!.
hashmap
list
Constructs a cons list.
matche
Matche! behaves like conde! but allows pattern matching. This simplifies destructuring and creation of fresh variables.
run
Run one or more goals.
substitution
Construct a substitution