Использование макросов Clojure для DSL

Я работаю над проектом Clojure и часто пишу макросы Clojure для DSL, но я смотрел видео Clojure о том, как компания использует Clojure в своей реальной работе, и докладчик сказал, что в На практике они не используют макросы для своих DSL, они используют макросы только для того, чтобы добавить немного синтаксического сахара.Означает ли это, что я должен написать свой DSL, используя стандартные функции, а затем добавить несколько макросов в конце?

Обновление : Прочитав множество разнообразных (и занимательных) ответов на этот вопрос, я понял, что ответ не так однозначен, как я сначала думал, по многим причинам:

  1. В приложении есть много разных типов API (внутренний, внешний )

  2. Есть много типов пользователей API (бизнес-пользователь, который просто хочет быстро что-то сделать, эксперт по Clojure)

  3. Есть ли там макрос, чтобы скрыть стандартный код?

Я уйду и подумаю об этом вопросе более глубоко, но спасибо за ваши ответы, так как они дали мне много поводов для размышлений. Также я заметил, что Пол Грэм противоположен видео Кристофа и считает, что макросы должны составлять большую часть кодовой базы (25%):

http://www.paulgraham.com/avg.html

11
задан customcommander 24 September 2019 в 11:21
поделиться