[][src]Crate mini_kanren

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