Strange Loop

Meander: Declarative Explorations at the Limits of FP

As functional programmers we love to pay lip service to declarative data transformation. Yet this allegiance rarely plays out in our actual code. Data transforming combinators (map, filter, reduce, etc) offer significant expressive power over manual loops and mutation, but when combined in complex ways, lose their declarative power. Lost in a web of nested pipelines, the shape of our data becomes obscured; our code becomes hard to follow. We wind up, yet again, needing to play computer in our heads to understand what our code is doing.

Meander is an exploration into truly declarative data manipulation created as a library in Clojure. Borrowing ideas from logic programming and term rewriting, Meander allows declarative descriptions of arbitrarily complex data; enabling you to search, match, remember, join, and transform any part of your data directly. This talk will show you how to leverage Meander to declaratively solve real-world data transformation problems, give you insight into how Meander remains both performant and expressive, and finally cast a vision for what a more declarative future for functional programming may hold.

Jimmy Miller

Jimmy Miller


Jimmy is a Senior Software Engineer at Adzerk where he uses Clojure to build data transformation and analysis systems. In his spare time he enjoys exploring programming language theory, reading analytic philosophy, and writing code that no one will ever use.