2010-10-05 59 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幾乎是不必要的。