For a bit of fun, I decided to port my lens talk to clojure and present it at Clojure Sydney.
This talk is quite different from the Haskell version, in that it covers off a lot of the basics (like what is a Functor) that I had assumed in the Haskell version.
As I started the process to port the code, I was skeptical about how well the translation would work. When programming without types, it isn’t always easy to implement and communicate more abstract concepts, and I though that it was likely that lenses may fall into this category as well. With this in mind, the purpose of this talk moved from “What are lenses and how to use them” to “What are lenses and are they actually useful in clojure”.