インタラクティブシェル(REPL)の使用

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 replcljのようなツールで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