Let's begin by setting up the tools we'll need to run the book's code. You can author the code for this book in any text editor you prefer. I'll be using Emacs. Leiningen will be the build tool that we'll use to compile and run our Clojure code. It lets us leverage Clojure's many key features shown as follows:
- Functional programming or a first class function evaluation model (a la lambda calculus).
- Immutability is a feature where data that is created is never changed. It is only transformed via the functions you apply.
- Laziness is the feature of not evaluating any code until it is absolutely required. This saves computing resources.
- Homoiconic, which refers to the programs you write, is actual data and vice versa.
- A well-designed, which syntax ...