Want to learn and master Clojure?

Join Exercism’s Clojure Track for access to 88 exercises grouped into 12 Clojure Concepts, with automatic analysis of your code and personal mentoring, all 100% free.

Explore concepts

About Clojure

(ns hello-world)

(defn hello
  ([] (hello "World"))
  ([name] (str "Hello, " name "!")))

Key Features of Clojure


Clojure

Lisp

Extends Lisp's code-as-data system to vectors and maps, and has a powerful macro system.

Dynamic

Clojure's primary programming interface is the Read-Eval-Print-Loop (REPL).

Functional

Allows avoiding mutable state, provides functions as first-class objects, and emphasizes recursion.

Practical

Doesn’t force programs to be referentially transparent, and doesn’t strive for 'provable' programs.

Concurrent

Supports sharing changing state between threads in a synchronous and coordinated manner.

JVM Hosted

Shares the JVM type system, GC, threads etc. Compiles all functions to JVM bytecode.

A taste of the concepts you'll cover


See all the concepts for Clojure

Get mentored the Clojure way

Every language has its own way of doing things. Clojure is no different. Our mentors will help you learn to think like a Clojure developer and how to write idiomatic code in Clojure. Once you've solved an exercise, submit it to our volunteer team, and they'll give you hints, ideas, and feedback on how to make it feel more like what you'd normally see in Clojure - they'll help you discover the things you don't know that you don't know.

Learn more about mentoring

Community-sourced Clojure exercises

The Clojure track on Exercism has 12 concepts and 88 exercises to help you write better code. Discover new exercises as you progress and get engrossed in learning new concepts and improving the way you currently write.

See all Clojure exercises
Clojure

Get started with the Clojure track

The best part, it’s 100% free for everyone.