Как я могу добавить импорт к «eval» редактору кода clojure? - PullRequest
4 голосов
/ 26 декабря 2010

Я хотел бы оценить некоторый код clojure, введенный пользователями в интерактивном режиме, и я хотел бы «использовать» определенные пространства имен и «импортировать» определенные классы Java. В итоге я запускаю код, используя:

(defn execute-command [string-command]
    let [
        code-with-context  (add-code-context string-command)
        result             (eval(read-string code-with-context))
        ]

        result
)

Мой вопрос заключается в том, как мне запрограммировать «add-code-context», чтобы добавить требуемый контекст к коду в «string-command»?

1 Ответ

3 голосов
/ 26 декабря 2010

Вам не нужно.Любой «use» d или «import» ed namspaces / классы доступны для кода, который вы проверяете, например

(require '[clojure.set :as set])
(-> "(set/union #{1} #{2})" read-string eval)
; => #{1 2}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...