¿Cómo evalúas una cadena como expresión de clojure?
metaprogramming evaluation (3)
¿Qué tan similar tiene que ser? La eval
de Clojure funciona en listas, por lo que:
(eval (list + 1 2)) #=> 3
¿Cómo obtendría algo similar a lo siguiente ?:
(evaluate-text "(+ 1 2)") ; resolves to 3
(load-string "(+ 1 2)")
user> (eval (read-string "(+ 1 2)"))
3
Probablemente nunca deberías necesitar hacer esto. Las macros y fns hacen que este tipo de cosas sean innecesarias el 99% del tiempo. Esto es bastante frágil y puede ser inseguro si estas cadenas provienen de la entrada del usuario, y así sucesivamente.