Clojure:
インタラクティブシェル(REPL)の使用
方法:
REPLを起動して始めます:
user=> (println "Hello, REPL!")
Hello, REPL!
nil
関数を定義して試してみます:
user=> (defn greet [name] (str "Hello, " name "!"))
#'user/greet
user=> (greet "Clojure Programmer")
"Hello, Clojure Programmer!"
データ構造で実験してください:
user=> (def my-map {:a 1 :b 2})
#'user/my-map
user=> (assoc my-map :c 3)
{:a 1, :b 2, :c 3}
ディープダイブ
REPLはLispファミリーの対話式開発哲学の鍵であり、現代のLisp方言であるClojureはこのツールを大いに活用しています。これは1950年代後半の最初のLisp REPLにまでさかのぼります。他言語の代替品には、PythonのインタープリターやNode.jsのコンソールがありますが、ClojureのREPLは一流の地位を持ち、ワークフローに不可欠です。
Clojure REPLセッションは、コマンドライン、IDE(IntelliJのCursiveやEmacsのCIDERなど)やNightcodeのようなブラウザーベースのツールなど、さまざまな環境に統合できます。もっと深い意味で、REPLは開発者がランタイムで言語の構造を操作し、さまざまな変換をまたいで状態を維持できるようにし、探索的プログラミングやより堅牢なコードにしばしばつながります。
lein repl
やclj
のようなツールでREPLの機能が輝きます。これらは依存関係管理、さまざまなプラグイン、プロジェクト固有のカスタマイズを可能にし、より生産的で柔軟な開発プロセスにつながります。
参照
- 公式ClojureウェブサイトガイドのREPL:https://clojure.org/guides/repl/introduction
- Rich HickeyのREPL駆動開発についての話:https://www.youtube.com/watch?v=Qx0-pViyIDU
- 実用的なClojure:REPLを使用した反復的開発:http://practicalclj.blogspot.com/2009/10/using-clojure-repl.html