次のようなものを取得するにはどうすればよいですか?:
(evaluate-text "(+ 1 2)") ; resolves to 3
次のようなものを取得するにはどうすればよいですか?:
(evaluate-text "(+ 1 2)") ; resolves to 3
user> (eval (read-string "(+ 1 2)"))
3
おそらくこれを行う必要はありません。マクロと fn は、この種のことを 99% の確率で不要にします。これは非常に壊れやすく、これらの文字列がユーザー入力などから来ている場合は安全ではない可能性があります。
(load-string "(+ 1 2)")
どのくらい似ている必要がありますか?Clojureeval
はリストで動作するため、次のようになります。
(eval (list + 1 2)) #=> 3