2010-10-05 56 views
3

我如何评估以下内容?如何评估clojure中的java.lang.String

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

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

java exam.Hello "run-clojure-func" 
+1

对不起,我不明白这个问题。你能用言语问吗? - 主要应该做什么? – 2010-10-05 07:12:00

回答

7

两个版本,你要考虑 - 完全等价的,但可作为比较的要点:

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

而这一点,使用destructuring没有-> macro用法:

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

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