Clojure

Join the Clojure Track
Clojure is a dynamic, general-purpose programming language. It combines the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming and the performance gains of compiling and running on the JVM. It is a lisp dialect that runs on the JVM, enabling the use of Java code side by side with Clojure.
Join the Clojure Track
Track mentors

17 Mentors

Our mentors are friendly, experienced Clojure developers who will help teach you new techniques and tricks.
Track students

7,155 Students

Join thousands of students who have enjoyed learning and improving their skills by taking this track.
Track exercises

76 Exercises

Hundreds of hours have gone into making these exercises fun, useful, and challenging to help you enjoy learning.

About Clojure

(ns hello-world)

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

Clojure is a dynamic programming language that targets the Java Virtual Machine (JVM). Designed as a general purpose language, Clojure combines the approachability of a scripting language with a robust infrastructure for multithreaded programming.

Clojure is predominantly a functional programming language, and features a rich set of immutable, persistent data structures.

Clojure is open source, and information about contributing to the language can be found here.

Rich Hickey, the creator of Clojure, wanted a modern Lisp for functional programming, symbiotic with the established Java platform, and designed for concurrency; thus, Clojure was born.

Here are a couple quotes that exemplify the goals of Clojure:

  • Good design is not about making grand plans, but about taking things apart.
  • Programming is not about typing...it's about thinking.
Join the Clojure track

Self-contained finite problems with which to learn the language

I have spent time with the Clojure, Elixir & Go tracks and all have been incredibly beneficial, providing self-contained finite problems with which to learn the language. The Go language track has been wonderful in introducing me to the language, what idiomatic code is, and the many different ways in which one can solve a problem.

Relaxed. Encouraging. Supportive.

Meet the Clojure Track mentors

Once you join the Clojure language track, you will receive support and feedback from our team of mentors. Here are the bios of a few of the mentors of this track.

Avatar of Jakub Holy

Jakub Holy Holy on Dev

I’m a full stack Clojure(Script) developer coming originally from the JVM/JS land, coding professionally since 2005. I love Clojure for its interactive development, productivity, and simplicity.
Avatar of Bobby Towers

Bobby Towers These are the Voyages of the Porkostomus

I write software for music and science education, mostly in Clojure but I also enjoy using C, Python and Bash. As a 'professional beginner', my focus is on making small programs that are easy to understand and modify if desired, never considering a topic fully learned until I can confidently explain it to someone else.
Avatar of Tuomo Virolainen

Tuomo Virolainen https://github.com/tvirolai

Functional programmer and lisper. I got interested in Clojure in about 2015 and it quickly became my tool of choice for most tasks.
Avatar of Daniel Brook-Roberge

Daniel Brook-Roberge

Longtime developer, recent Clojurian. Ex-academic web developer who loves code review so much I'm volunteering to do more here!
Avatar of Jarred Humphrey

Jarred Humphrey https://github.com/JarredLHumphrey

Professionally developed in Clojure for last 5 years and use it as my language of choice for most personal projects. I've been programming with a wide array of languages for past 12 years (Java/Javascript/Ruby/PHP).
Avatar of Andrew Whitehouse

Andrew Whitehouse https://github.com/andrewwhitehouse

My main languages are Java and Clojure. Have been using Clojure on and off commercially since 2014.
Fun. Challenging. Interesting

Community-sourced Clojure exercises

These are a few of the 76 exercises on the Clojure track. You can see all the exercises here.

Beer Song
easy
misc
Gigasecond
easy
misc
Nth Prime
easy
math
Hexadecimal
easy
math
Difference Of Squares
medium
math
Kindergarten Garden
easy
misc
Passionate. Knowledgeable. Creative.

Meet the Clojure Track maintainers

The Clojure Maintainers are the brains behind the Clojure Track. They spend their spare time creating interesting and challenging exercises that we can all learn from. We are incredibly grateful for their hard work. Here are the bios of a few of the maintainers of this track.

Avatar of Matthaus Owens

Matthaus Owens

This maintainer has not added their bio yet.

Get started with the Clojure track. As with everything on Exercism, it's 100% free!

Join the Clojure Track