我已經在Eclipse中運行clojure了。我想在運行時將參數傳遞給clojure。在下面的參數在REPL中可用,但不在腳本本身中。我需要做什麼以便在REPL中的下面的鍵入arg1將返回第一個參數?Clojure:在腳本中使用*命令行參數*而不是REPL
腳本:
(NS Test)
(def arg1 (nth *command-line-args* 0))
點擊Eclipse的 「運行」 後...
Clojure 1.1.0
1:1 user=> #<Namespace test>
1:2 test=> arg1
nil
1:3 test=> *command-line-args*
("bird" "dog" "cat" "pig")
1:4 test=> (def arg2 (nth *command-line-args* 1))
#'test/arg2
1:5 test=> arg2
"dog"
1:6 test=>
Brian,謝謝你的建議。它肯定看起來像REPL在Eclipse中開始的方式;直接運行腳本按預期工作。 僅供參考,不知道爲什麼,但將arg1定義爲函數不能如我所料。下面是一個新的腳本和輸出直接運行它。 (NS試驗) (的println *命令行-ARGS *) (DEFN ARG1 [](第n *的命令行-ARGS * 0)) 並運行它... 的java -cp/Path_to_jar /clojure.jar clojure.main com.clj貓狗 (貓狗) # (println arg1) –
2010-05-15 08:59:33