Clojure

動的な開発

まず第一に、Clojureは動的です。つまり、Clojureプログラムはコンパイルして実行するだけのものではなく、インタラクトできるものなのです。Clojureは言語の抽象化ではなく、環境であり、ほとんどすべての言語構造が具現化され、それゆえに調べたり変更したりすることができます。これにより、プログラムを実行し、その結果(または失敗)を調べ、再び試すという経験とは大きく異なる体験につながります。特に、データをロードし、機能を追加し、バグを修正し、テストを、途切れることのない流れの中で行うことによって、プログラムを成長させることができます。

REPL

ClojureはJavaアプリケーションに埋め込んだり、スクリプト言語として使用したりすることもできますが、主要なプログラミングインターフェースはRead-Eval-Print-Loop(REPL)です。これは、コマンドを入力して実行し、その結果を調べることができるシンプルなコンソールインターフェースです。Clojure REPLはこのように起動でき、この機能ツアーでサンプルを試してみることができます。

java -cp clojure.jar clojure.main

これは次のようなプロンプトを表示します。

user=>

ほとんどのClojureコマンドは(コマンド 引数*)という形式をとります。試してみてください。

(def x 6)
-> #'user/x
(def y 36)
-> #'user/y
(+ x y)
-> 42

基本

Clojureには、任意の精度の整数、文字列、有理数、倍精度浮動小数点数、文字、シンボル、キーワードがあります。

(* 12345678 12345678)
-> 152415765279684
"string"
-> "string"
22/7
-> 22/7
3.14159
-> 3.14159
\a
-> \a
'symbol
-> symbol
:keyword
-> :keyword
;a comment

動的なコンパイル

Clojureはコンパイル言語なので、いつコンパイラを実行する必要があるのか疑問に思うかもしれません。その必要はありません。REPLに入力した内容、またはload-fileを使用してロードした内容は、すべてその場で自動的にJVMバイトコードにコンパイルされます。事前コンパイルも可能ですが、必須ではありません。