“Using the REPL” actually means typing your code in your favorite editor. However, one sends the code to evaluate in a REPL, which may not even be visible at all. Once the code is evaluated, the results immediately show up in the editor, so you get the feedback right away. Obviously, this requires some upfront setup, but a proper Clojure REPL setup exists in all major editors. Just google it.
Note that one normally sends the code to evaluate with a single key stroke. Note also, a very important point that people often miss, is that this “sending code to evaluate” is uniquely convenient in Lisp because of the parentheses.
There’s a notion of “form” in Lisp, that is the code enclosed between a pair of parentheses, which can be independently evaluated. So, when next time someone insists that their favorite non-Lisp language also has a REPL, ask them, does it have a notion of “form”?
The benefit of a form, is that one no longer needs to use a mouse or some awkward key combinations to painstakingly select a region of code first, before sending it out for evaluation. Instead, one can use a single key stroke that means “evaluate the form under the cursor”, or “evaluate the form before the cursor”, etc, to precisely define the scope and send the code at the same time. — How much can a Clojure developer do alone?