The Clojure REPL gives the programmer an interactive development experience. When developing new functionality, it enables her to build programs first by performing small tasks manually, as if she were the computer, then gradually make them more and more automated, until the desired functionality is fully programmed. When debugging, the REPL makes the execution of her programs feel tangible: it enables the programmer to rapidly reproduce the problem, observe its symptoms closely, then improvise experiments to rapidly narrow down the cause of the bug and iterate towards a fix.

Many Clojure programmers consider the REPL, and the tight feedback loop it provides, to be the most compelling reason to use Clojure. This does not mean that the language features of Clojure, such as immutable data structures, are not valuable: the Clojure REPL gets most of its leverage because of these features, in particular because Clojure was designed with interactive development in mind.

In Clojure, a programmer will typically use the REPL for a wide spectrum of programming tasks, when in another language she would turn to other sorts of tools. Such tasks include:

launching local development environments,

running automated test suites,

one-off database queries and interventions,

debugging,

orchestrating remote machines,

getting familiar with libraries and APIs,

…​and many forms of exploration.