Chapter 8Identity, Value, and State in Clojure

by Michael Bevilacqua-Linn

In the preceding chapter, we took a look at one language feature that makes Clojure special: its Lisp-style macro system and the syntax that enables it. This code as data style is a very old characteristic of languages in the Lisp family, and Clojure is one modern instance of it.

Clojure’s Lisp-style macro system isn’t the only trick it’s got up its sleeve. In this article, we’ll take a look at another one of its defining characteristics. Clojure embodies a novel philosophy on identity, value, and state. While this philosophy makes Clojure uniquely suitable for concurrent programming, I’ve found that it also reduces the complexity of non-concurrent programs.

In this ...

Get Functional Programming: A PragPub Anthology now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.