Я хочу иметь макрос dbtest, который можно использовать следующим образом:
(dbtest
(prn test-object1)
(prn test-object2))
test-object1 и test-object2 должны быть переменными, которые определены dbtest (потому что они нужны мне каждый раз, когда я используюмакрос dbtest).«prn» - просто пример;Я хочу использовать произвольный код внутри макроса.
Я пробовал это:
(defmacro dbtest [& body]
`(sql/with-connection db
(delete-all-tables)
(let [~'test-object1 (insert-object "foo")]
~@body)))
, где insert-object - это функция, которая вставляет что-то в БД и возвращает соответствующую структуру данных.
Но это не работает: я получаю сообщение об ошибке «нет таких переменных»