Education‎ > ‎

Closer to Clojure

Clojure is a new dialect of LISP which strongly supports functional programming and optimized for Java VM (JVM). This would make sense to hackers.

Clojure is a kind of LISP. Let's try now.

> java -cp clojure.jar clojure.main
user=>

You are in REPL.

user=> (def x 6)
#'user/x
user=> (def y 36)
#'user/y
user=> (* x y)
216

Yep, it is LISP. You can access to Java library from Clojure. For example:

user=> (. javax.swing.JOptionPane (showMessageDialog nil "Hello World"))



Hit OK button and you'll be back to REPL. Period is a syntax for calling Java methods. You can do the following to read source code instead of running REPL.

> java -cp clojure.jar clojure.main source.clj arg1 arg2 ...

Arguments arg1, arg2, ... can be accessed by reserved variable *command-line-args*.

Reference:
http://clojure.org/dynamic
Clojureは Java VM (JVM) に最適化された,関数型プログラミングを強くサポートするLISP系言語です.ハッカーにはこの説明で十分でしょう.

ClojureはLISPの一種です.公式サイトからダウンロードして,早速使ってみましょう.

> java -cp clojure.jar clojure.main
user=>

REPLに入りました.

user=> (def x 6)
#'user/x
user=> (def y 36)
#'user/y
user=> (* x y)
216

普通にLISPです.ClojureはJavaライブラリへのアクセスが可能です.Javaライブラリを使ってみましょう.

user=> (. javax.swing.JOptionPane (showMessageDialog nil "Hello World"))



OKボタンを押すとREPLに制御が戻ります.ピリオドはJavaメソッドを呼び出すための構文です.REPLではなくソースコードを食わせるにはこうします.

> java -cp clojure.jar clojure.main source.clj arg1 arg2 ...

arg1 arg2 ... は組み込み変数 *command-line-args* で受け取れます.

参考
http://clojure.org/dynamic