Earlier quoted context omitted.
I work with clojure and test driven development is not nearly as productive as repl driven development imo.
There's a place for both even with a REPL I think. Sometimes when I'm tracking a bug down or writing a new function against an old one, I find that I'm writing little one-off functions or worse, replicating a function body line by line in a let block to simulate arguments. Once I opened up a project and realized I wanted one of them, but it was lost when the REPL closed. I literally got as far as opening another file…
You don't type directly in the REPL most of the time. Send lines and functions to it instead.