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.