问题
How would I get something similar to the following?:
(evaluate-text "(+ 1 2)") ; resolves to 3
回答1:
(load-string "(+ 1 2)")
回答2:
user> (eval (read-string "(+ 1 2)"))
3
You probably shouldn't ever need to do this. Macros and fns make this kind of thing unnecessary 99% of the time. This is quite brittle, and can be unsafe if these strings are coming from user input, and so on.
回答3:
How similar does it have to be? Clojure's eval
works on lists, so:
(eval (list + 1 2)) #=> 3
来源:https://stackoverflow.com/questions/1885448/how-do-you-evaluate-a-string-as-a-clojure-expression