Clojure Gazette 1.60
conj recap, deep walking, and schemas
Clojure Gazette
Issue 1.60
November 22, 2013 ====================================
Editorial
Greetings, Persistent Data Structures,
Friends, the Conj is over. There's no more cake. No more tweets. Now, we wait for the videos.
But, before that, there's always the recaps! I wasn't there, but I was informed that a major theme of the conference was schemas for data. So I've included a couple of libraries that play on that theme.
Enjoy!
Sincerely,
Eric Normand
P.S. I love hearing from readers. Just reply to this email!
P.P.S. My videos are still available!
Reading
Logical Types for Untyped Languages
This paper describes occurrence typing, a propositional logic-based type inference algorithm which can understand conditionals which branch on type predicates. This is the basis of Typed Racket and Typed Clojure.
State of Clojure results
Chas Emerick received 1,061 responses to the 2013 survey. This is his summary.
State of Clojure language features
Alex Miller categorizes the 610 answers to the State of Clojure question "Name *one* language feature you would like to see added to Clojure."
Clojure/conj 2013
Logan Linn's recap of the conference.
Clojure/conj 2013 - a quick recap
Sean Corfield's summary of the conference.
An introduction to deep code-walking macros with Clojure
I am rereading this nice intro to code-walking macros by fogus. It's making me appreciate the clojure.walk namespace , which I don't use enough.
A Few Interesting Clojure Microbenchmarks
This exploration of performance issues might not get you to optimize your code, but it does a good job of explaining how Clojure works under the hood.
Software
CSP.js
core.async implemented in ECMAScript 6 (it needs generators).
component
A small library from Stuart Sierra to help support his Clojure Workflow, Reloaded .
Herbert
The goal of the Herbert project is to provide a convenient schema language for defining edn data structures that can be used for documentation and validation. The schema patterns are represented as edn values.
Check out the examples .
Schema typer
Why write two specs when one will do? This library will translate prismatic/schema schemas into core.typed types.
Watching
Clojure: Deep Walking Macros
Timothy Baldridge gives a clear introduction to macros (for beginners) then dives deep into macros which actually transform code. A very good lesson.