我已经在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