我想以交互方式评估用户输入的一些clojure代码,我想“使用”某些名称空间并“导入”某些Java类。我最终使用:
运行代码(defn execute-command [string-command]
let [
code-with-context (add-code-context string-command)
result (eval(read-string code-with-context))
]
result
)
我的问题是如何编写“add-code-context”以在“string-command”中为代码添加所需的上下文?
答案 0 :(得分:3)
你不必。您可以使用任何“使用”d或“导入”ed命名空间/类,例如
(require '[clojure.set :as set])
(-> "(set/union #{1} #{2})" read-string eval)
; => #{1 2}