Я работаю над проектом Clojure и часто пишу макросы Clojure для DSL, но я смотрел видео Clojure о том, как компания использует Clojure в своей реальной работе, и докладчик сказал, что в На практике они не используют макросы для своих DSL, они используют макросы только для того, чтобы добавить немного синтаксического сахара.Означает ли это, что я должен написать свой DSL, используя стандартные функции, а затем добавить несколько макросов в конце?
Обновление : Прочитав множество разнообразных (и занимательных) ответов на этот вопрос, я понял, что ответ не так однозначен, как я сначала думал, по многим причинам:
В приложении есть много разных типов API (внутренний, внешний )
Есть много типов пользователей API (бизнес-пользователь, который просто хочет быстро что-то сделать, эксперт по Clojure)
Есть ли там макрос, чтобы скрыть стандартный код?
Я уйду и подумаю об этом вопросе более глубоко, но спасибо за ваши ответы, так как они дали мне много поводов для размышлений. Также я заметил, что Пол Грэм противоположен видео Кристофа и считает, что макросы должны составлять большую часть кодовой базы (25%):