Learn Clojure from zero by working through exercises that immediately tell you if your answer is right.
Practice functional programming concepts like immutability and higher-order functions in a guided, self-paced format.
Use the built-in REPL to experiment with Clojure expressions while solving each exercise.
Set up a reproducible Clojure learning environment in minutes using Docker without touching your system configuration.
Requires Java and Clojure installed locally, or Docker, Docker path is the easiest for beginners.
This is a set of programming exercises for people who want to learn Clojure, a programming language in the Lisp family that runs on the Java platform. No prior experience with Clojure is required to start. The format borrows a teaching approach called koans, originally from Zen Buddhism and adapted for programming education by the Ruby community. Each exercise presents you with a piece of code that has a blank in it, and your job is to fill in the blank so that a test passes. The tool runs continuously in the background and automatically moves you to the next exercise as soon as you save a correct answer, so you get immediate feedback without having to manually run anything. When you get stuck or want to experiment, you can open an interactive console called a REPL where you type expressions and see results immediately. The README explains how to use the built-in help commands inside that console to look up what functions do. You can get the exercises running in a few ways: installing the required tools directly on your machine, using Vagrant (a tool for running pre-configured virtual machines), or using Docker (a tool for running isolated software containers). All three options are covered in the README with specific commands. The project is licensed under the Eclipse Public License 1.0. It was originally created in 2010 as a learning tool for newcomers to functional programming and has since been maintained by the community.
← functional-koans on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.