Relational programming, or logic programming, is a programming paradigm that exhibits remarkable and powerful properties, to the extent that its implementation seems frightfully daunting to the layman. µKanren is a minimal relational language that seeks to strip the paradigm down to its core, leaving us with a succinct, elegant and above all simple set of primitives on top of which we can rebuild even the most powerful relational constructs.
In this talk, we will explore the µKanren language by implementing it from first principles in a simple functional programming language, going on to demonstrate how you can assemble these simple building blocks into a semblance of its richer parent, miniKanren, and maybe solve a logic puzzle or two to make sure it’s working as advertised.
The µKanren paper, and the original µKanren implementation, were authored by Jason Hemann and Daniel P. Friedman. The paper is available at http://webyrd.net/scheme-2013/papers/HemannMuKanren2013.pdf , and the Scheme implementation at https://github.com/jasonhemann/microKanren .
A compulsive conference speaker in the fields of functional programming and internets technologies, and a co-organiser of multiple developer conferences in Scandinavia and the UK, mostly because she’s still learning how to stop.