We argue, though, that deeply buried within that 265- line miniKanren implementation is a small, beautiful, relational programming language seeking to get out. We believe µKanren is that language.
In this presentation we will discuss µKanren, a relational language in the family of miniKanren. We will discuss the basics of relational programming, variable binding, and the strategy that µKanren uses for backtracking. We will explore these concepts using elm-microkanren. Finally, we will briefly cover the work needed to bring µKanren into feature parity with miniKanren using my own extensions to elm-microkanren (plus error handling and named variables.)
Brian Hicks is the CTO of Asteris, a devops consultancy based in St. Louis, MO. He organizes elm-conf US, blogs about Elm (and other things) at brianthicks.com and runs the St. Louis Tech Slack. He enjoys biking around St. Louis, hanging out with his wife, and tweeting about his cat.
1. µKanren, A Minimal Functional Core for Relational Programming: http://webyrd.net/scheme-2013/papers/HemannMuKanren2013.pdf
2. tapeinosyne/elm-microkanren, µKanren in Elm: https://github.com/tapeinosyne/elm-microkanren