你如何评估clojure中的java.lang.String

时间:2010-10-05 03:57:23

标签: clojure

我如何评估以下内容?

(defn run-clojure-func []
  (println "welcome"))

(defn -main [& args]
  (eval (*func* (first args)))

java exam.Hello "run-clojure-func"

1 个答案:

答案 0 :(得分:7)

您需要考虑两个版本 - 完全相同,但作为比较点有用:

(defn -main [& args]
  ((-> args first symbol resolve)))

这样,使用destructuring而不是-> macro用法:

(defn -main [[fn-name]]
  ((resolve (symbol fn-name))))

resolve显然是关键。文档是你的朋友。 :-)另外,作为一种不公平的概括,eval几乎不需要。