アーカイブ
Posts Tagged ‘clojure’
12. Clojure: Clojure Box のカスタマイズ
2010/03/16
コメントを残す
Clojure Boxはインストールしただけで、なんとなく使えるけれども、(compile ‘hogehoge)したらエラーでるじゃん!とかなる初心者(僕だけど…)向け設定
ワーキングディレクトリを
C:\workspace
とする。
このディレクトリに、srcとclassesというディレクトリを作成しておく。つまり、
C:\workspace\src C:\workspace\classes
というディレクトリを作成する。で、次のようなファイルを作った場合は、
(ns my.hello) (defn hello [] (println "hello,world"))
C:\workspace\src\my\hello.clj
として保存する。namespaceとディレクトリ(ファイル名含む)パスが一致することが重要。
次に、C:\workspace\src と C:\workspace\classes を “swank-clojure-classpath”に追加するために、emacs/site-lisp/default.elを修正する。Clojure Boxを標準でインストールしていれば、C:/Program Files/Clojure Box/emacs/site-lisp/default.elにあるはず。で、次のように保存して(追加したところはBoldで示した)、emacsを再起動する。
(add-to-list 'swank-clojure-classpath (concat clojure-home "swank-clojure/src")) (add-to-list 'swank-clojure-classpath "c:/workspace/src") (add-to-list 'swank-clojure-classpath "c:/workspace/classes") ;; Start the REPL (slime))
ついでに、REPLで日本語も使いたい、という場合は、やはり同じdefault.elの(require ‘slime)という行の次に、slime-net-coding-systemにutf-8を指定する。
(add-to-list 'load-path (concat clojure-home "slime-cvs/")) (require 'slime) (setq slime-net-coding-system 'utf-8-unix) (slime-setup '(slime-repl))
日本語の入力は、「全角半角キー」じゃなくて、Controlキーを押しながら¥キー。これで、日本語入力モードがトグルする。
ここまでで設定は終わり。emacsを再起動して、(compile ‘my.hello)して、エラーがなければ多分compileは成功していて、C:\workspace\classes以下にclassファイルがいくつか作られているはず。
11. Clojure: 関数定義の近くにテストコードをかけるのは便利かも
2010/03/12
コメントを残す
(ns my-name-space) (use 'clojure.test) (with-test (defn m2p1 "与えられた引数を2倍して1を加算した値を返す" [x] (+ 1 (* 2 x))) (is (= -3 (m2p1 -2))) (is (= -1 (m2p1 -1))) (is (= 1 (m2p1 0))) (is (= 3 (m2p1 1))) (is (= 5 (m2p1 2))) (is (= 7 (m2p1 3)))) (run-tests 'my-name-space)