如何将字符串转换为clojure表达式?

Reb*_*bin 3 clojure

我想在一个字符串中发送一个clojure表达式,以便在接收者处进行评估,这可能是一个用compojure编写的Web服务.例如,假设我有字符串"(*7 6)",我想把它变成'(*7 6),然后我可以传递给eval并得到42.这个操作在JavaScript中是微不足道的,但是不太确定如何在clojure中做到这一点.提示?

leo*_*ges 5

这应该做的伎俩:

(eval (read-string "(* 7 6)")) ;; 42
Run Code Online (Sandbox Code Playgroud)

或者,简而言之:

(load-string "(* 7 6)") ;; 42
Run Code Online (Sandbox Code Playgroud)

  • 我觉得这应该在这里提到; 请注意即使你不调用eval,read-string本身也会评估代码:`````````````````````````````````````````````````````````````````````````````````` (2认同)