We now have a working installation of Clojure and IntelliJ.
As a Java developer, you are used to working with classes as the minimal unit of organization. Clojure has a very different sense and gives you different tools to organize your code.
For starters, you should keep in mind that code and data are separate; you don't have a minimal unit with attributes and functions that work over those attributes. Your functions can work on any data structure that you wish, as long as you follow the rules of how the function works.
In this chapter, we will start writing some simple functions to illustrate how separation of functions and data works and we will have a look at the tools Clojure gives us to make the separation.
In this chapter, we will cover the following topic:
How namespaces work compared to the classpath and Java packages
Unit tests
More Clojure examples and syntax