In this talk I will give an introduction to miniKanren, a minimal embedded domain-specific language for constraint logic programming. miniKanren is designed to support relational programming, in which all code is written as mathematical relations, with no distinction between inputs and outputs. miniKanren uses a complete interleaving search, combined with unification and other constraints, to solve for variables representing unknown values. In effect, every miniKanren query is a program synthesis problem.
In this talk I will give an introduction to miniKanren, a minimal embedded domain-specific language for constraint logic programming. miniKanren is designed to support relational programming, in which all code is written as mathematical relations, with no distinction between inputs and outputs. miniKanren uses a complete interleaving search, combined with unification and other constraints, to solve for variables representing unknown values. In effect, every miniKanren query is a program synthesis problem.
Speakers: William Byrd