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")) ![]() > 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 |
Education >
Closer to Clojure
Subpages (10):
Closer to Clojure 01: Function
Closer to Clojure 02: Collection
Closer to Clojure 03: Conditional
Closer to Clojure 04: Lazy evaluation
Closer to Clojure 05: Loop
Closer to Clojure 06: Polymorphism
Closer to Clojure 07: Java
Closer to Clojure 08: Thread
Closer to Clojure 09: I/O
Closer to Clojure 10: Macro
Comments