Clojure is homoiconic, which is to say that Clojure code is composed of Clojure data. When you run a Clojure program, a part of Clojure called the reader reads the text of the program in chunks called forms and translates them into Clojure data structures. Clojure then compiles and executes the data structures.
The Clojure forms covered in this book are summarized in Figure 1, Clojure forms. To see forms in action, let’s start with some simple forms supporting numeric types.