Clojureを入れてみる

Lispの「構文の統一性」と、Javaの「豊富なライブラリ」を併せ持つと期待している言語、
Clojure」を導入してみました。
Googleで検索して出てきた情報は最新版ではなかったので、無理して最新版を導入します。

まずは、Clojure公式サイト http://clojure.org/ の上のほうにある「Download」をクリックします。
そうすると、ファイル一覧が出てくるので、(この記事を書いた時点での)最新版の「clojure-1.1.0-rc2.zip」をクリックしてダウンロードします。
ダウンロードしたzipファイルの中にあるclojure-1.1.0-rc2フォルダの中のフォルダ全てをとりあえず好きなところ(ここではC:\Clojure)にコピーします。
次に、バッチファイルを作成します。

@echo off
java -cp C:\Clojure\clojure.jar clojure.main %*

このバッチファイルを、C:\Clojjureフォルダの中に、clj.batという名前で保存します。
最後に、C:\Clojureにパスを通しておきます。
これで導入は終わりです。
Clojureにはいくつか実行方法があるらしいので、今回はその中の4つをやってみます。
まずは、REPL(対話モード)です。
普通にcljコマンドを実行。そうすると、バージョン番号と、「user=>」の文字が出てくるので、
Clojureの式(プログラム)を入力します。ここではとりあえず、

(+ 10 20)

と入力してみます。「30」と表示されます。REPLを終了させるためには、

(. System exit 0)

と入力します。Systemクラスのexitメソッドに引数0を付けて実行するということみたいです。
次に、コマンドライン引数で実行します。
「clj -e "(+ 10 20 30 40 50 60 70 80 90)"」というコマンドを実行すると「450」と表示されます。
標準入力にコードを入れる方法もあります。
「clj -」というコマンドを実行して、

(println "Hello World!")

と入れてみると「Hello World!」と出ます。お決まりのプログラムですね。
Ctrl + Zを押すと終了します。
最後に、スクリプトを書いて実行する方法です。

(import '(javax.swing JFrame JLabel))

(def frame (new JFrame "Clojure"))

(def label (new JLabel "Clojure"))

(. frame setDefaultCloseOperation (. JFrame EXIT_ON_CLOSE))
(. (. frame getContentPane) add label)
(. frame setSize 300 300)
(. frame setVisible true)

というコードを、適当なフォルダに保存します。ここでは「SwingTest.clj」という名前で保存した場合を想定しています。
そして、保存したフォルダにcdコマンドなどで移動して、
「clj SwingTest.clj」で実行できます。
classファイルにコンパイルする方法はよくわからないのでまた今度分かったら書きたいです。
やはりClojureの名前の由来はClosure(クロージャ) + JavaのJ?