clojure - 如何在 clojure 中评估 java.lang.String

标签 clojure

我将如何评估以下内容?

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

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

java exam.Hello "run-clojure-func"

最佳答案

两个版本供您考虑 - 完全等效,但作为比较点很有用:

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

这个,使用 destructuring没有-> macro用法:

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

resolve 显然是关键。文档是你的 friend 。 :-) 另外,作为一种不公平的概括,eval 几乎从来没有必要。

关于clojure - 如何在 clojure 中评估 java.lang.String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3860739/

相关文章:

clojure - 为什么减少这个惰性序列会使这个 Clojure 程序减慢 20 倍?

Clojure "look-and say"序列

if-statement - 在 Clojure 函数中编写多个 if 检查的更好方法?

clojure - 从 Clojure 中的另一个命名空间调用私有(private)宏?

clojure - 与记录、协议(protocol)和编译相关的令人惊讶的行为

unit-testing - 如何从 `lein test` 输出成功的测试?

在其他命名空间中找不到记录类型的 Clojure 协议(protocol)实现

google-app-engine - 使用 java.net.URLConnection 的 Clojure http 请求?

data-structures - 不能在 Clojure 的库级别有效地实现 cons 单元吗?

clojure - 我自己的插入函数作为练习