Question

Comment puis-je obtenir quelque chose de semblable à ce qui suit:

(evaluate-text "(+ 1 2)")  ; resolves to 3
Était-ce utile?

La solution

(load-string "(+ 1 2)")

Autres conseils

user> (eval (read-string "(+ 1 2)"))
3

Vous ne devriez probablement pas besoin jamais de le faire. Les macros et font SNF ce genre de chose inutile 99% du temps. Ceci est très fragile, et peut être dangereux si ces chaînes viennent de l'entrée de l'utilisateur, et ainsi de suite.

Comment similaire il être? Le eval de Clojure fonctionne sur les listes, donc:

(eval (list + 1 2)) #=> 3
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top