В этом вопросе предлагается создать макрос Clojure для генерации нескольких функций. Мы придумали, как это сделать, но зациклились на вопросе «Это хорошая идея?».
Моя первоначальная реакция не совсем по двум причинам
- Затем у вас есть функции, которые не определены в вашем коде, и это может немного усложнить понимание вашего кода! (Представьте, что у кого-то проблема с одной из ваших функций, и он смотрит на исходный код только для того, чтобы нигде его не найти).
- Лучше исключить общность кода в функции или макросе. Плохой подход к этому - позволить вашему компьютеру писать набор очень похожих функций.
Что вы думаете? Когда имеет смысл генерировать функции в Лиспе? Должен ли он быть «на лету» или вы предпочитаете хранить его где-нибудь в файле?
задан Community 23 May 2017 в 12:19
поделиться