TL;DR

REPL(Read-Eval-Print Loop)で動いているプログラムと対話し、式を 1 つずつ評価しながらプログラムを作っていく開発のやり方。Clojure や Common Lisp でよく使われる。

なぜ必要か

Clojure の公式ガイドによると、多くの Clojure のプログラマは、REPL がもたらす短いフィードバックループを、Clojure を使う一番の理由に挙げている。プログラマが求めるのは、手作業だけのツールでも、すべて自動化したスクリプトでも得られない、自動化と即興の組み合わせである。

仕組み

Clojure の公式ガイドでは、REPL を、動いている Clojure のプログラムと対話し、コードの式を 1 つずつ評価してプログラムを書き換えられる環境と説明している。新しい機能を作るときは、自分がコンピュータになったつもりで小さな作業を手で行い、それを少しずつ自動化していく。デバッグでは、問題をすばやく再現し、症状を観察し、実験を重ねて原因を絞り込める。

REPL は、開発環境の起動、テストの実行、一度だけのデータベースへの問い合わせ、リモートのマシンの操作、ライブラリや API の学習などにも使われる。

関連

出典