Book Image

Clojure for Java Developers

Book Image

Clojure for Java Developers

Overview of this book

We have reached a point where machines are not getting much faster, software projects need to be delivered quickly, and high quality in software is more demanding as ever. We need to explore new ways of writing software that helps achieve those goals. Clojure offers a new possibility of writing high quality, multi-core software faster than ever, without having to leave your current platform. Clojure for Java developers aims at unleashing the true potential of the Clojure language to use it in your projects. The book begins with the installation and setup of the Clojure environment before moving on to explore the language in-depth. Get acquainted with its various features such as functional programming, concurrency, etc. with the help of example projects. Additionally, you will also, learn how the tooling works, and how it interacts with the Java environment. By the end of this book, you will have a firm grip on Clojure and its features, and use them effectively to write more robust programs.
Table of Contents (14 chapters)
Clojure for Java Developers
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
Index

Clojure interop syntax


Clojure was designed to be a Hosted Language, which means that it can run in different environments or runtimes. One important philosophy aspect is that Clojure does not attempt to get in the way of your original host; this allows you to use your knowledge of the underlying platform to your advantage.

In this case, we are using the Java platform. Let's look at the basic interrupt syntax that we need to know.

Creating an object

There are two ways to create an object in Clojure; for example, let's have a look at how to create an instance of java.util.ArrayList.

(def a (new java.util.ArrayList 20))

Here, we are using the new special form, as you can see it receives a symbol (the name of the class java.util.ArrayList) and in this case it is an integer.

The symbol java.util.ArrayList represents the classname and any Java class name will do here.

Next, you can actually pass any number of parameters (including 0 parameters). The next parameters are the parameters of the constructor...