Попытка сделать макрос деконструировать параметры с карты запроса кольца с помощью макроса. Он работает нормально:Запрос на изменение изображения макроса макроса
(defmacro defpage [fname args & body]
`(defn ~fname [{{:keys ~args} :params}]
[email protected]))
(defpage h-projects [name description]
; some code using name and description...
)
(defroutes app-routes
(ANY "/p/" [] h-projects)
Но, я хотел бы иметь возможность использовать карту запрос непосредственно в функции ч-проектов:
(defpage h-projects [name description]
; some code using name and description, and also
; the request map.
)
Как defpage макрос может быть изменен, чтобы сделать запрос карта доступна для функции h-projects?
Я знаю, что могу изменить параметры функции h-projects, но я хотел бы сохранить простой вектор с параметрами, а не с глубокой вложенной деконструирующей картой.
Ваш ответ, кажется, частично работает. Макрос не-магии работает, но макрос с именем my-magic вводит следующую ошибку: java.lang.RuntimeException: Невозможно дать квалифицированное имя: my-magic-name, компиляция – Drewes
A ~ 'до my-magic- имя, и оно работает – Drewes