Chapter 3. General Computing

3.0. Introduction

There’s a saying in business that no organization operates in a vacuum. The same applies to Clojure. For all the cool tools and techniques Clojure offers, there are still a number of activities and techniques that for whatever reason aren’t always on the direct path to shipping software. Some might call them academic, or incidental complexity, but for the time being, we call them life.

This chapter covers some of the topics about Clojure development that don’t quite fill chapters on their own. Topics like:

  • How do I use Clojure’s development ecosystem?
  • How do abstract concepts (such as polymorphism) apply to Clojure?
  • What is logic programming, and when might I want to use it?

3.1. Running a Minimal Clojure REPL


You want to play with a Clojure REPL but you don’t want to install additional tools.


Obtain the Clojure Java archive (JAR) file by downloading and unzipping a release from Using a terminal, navigate to where you extracted the JAR, and start a Clojure REPL:

$ java -cp "clojure-1.5.1.jar" clojure.main

You are now running an interactive Clojure REPL (read-eval-print loop). Type an expression and hit Enter to evaluate it. Press Ctrl-D to exit.


The fact that Clojure on the JVM is encapsulated in a simple JAR file has some great benefits. For one, it means that Clojure is never really installed. It’s just a dependency, like any other Java library. You can easily swap ...

Get Clojure Cookbook now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.