The Inner Working of Zippers and Building Your Own Logic Engine

Details

The Inner Working of Zippers

It's been two decades since Gérard Huet described the zipper data structure, and a decade since Rich Hickey wrote clojure.zip. Zippers allow traversing and manipulating any tree-shaped data in a way that is convenient, fast, and functional.

We'll look at how zippers work, how Clojure implements them, and finally build our own mini-tool with them using rewrite-clj. Come and see what this under-appreciated gem from Clojure's standard library has to offer!

Arne Brasseur teaches the world Clojure through the Lambda Island (https://lambdaisland.com) screencast series, and helps companies build ambitious products using Clojure and ClojureScript. He's also an avid open source contributor currently improving Clojure's testing story through the Kaocha project: https://github.com/lambdaisland/kaocha.

Building Your Own Logic Engine

Logic engines like core.logic are a bit of a black art and rather hard to understand. Let's build one from scratch, starting with some very concise and easy to understand examples. From there we'll move on to discussing how logic engines can be useful in real world applications, ending with a discussion of optimizations and how to JIT compile a logic program.

Timothy Baldridge is a Senior Software Engineer with Cisco's ThreatGrid team. He specializes in DSLs, logic engines, compilers and database integration. As a programmer with about 8 years of Clojure experience, he's worked on several large systems several of which used the technology being discussed in this talk.