История изменений
Исправление Nervous, (текущая версия) :
Куча макросов имеет сайд-эффекты (def макросы по определению сайд-эффектят — модифицируют текущее окружение, это смысл вообще их существования) и никто не делает из этого драмы
Поправочка: есть разница между сайд-эффектами результата раскрытия макроса (код, который макрос возвращает) и сайд-эффектами кода, который генерирует этот код (собственно тело макроса).
def
-like макросы — это первый случай и тут по уместности сайд-эффектов ни у кого возражений нет — это обычный кот, которому всё можно. Со вторым немного сложнее — мнения сходятся на том, что там сайд-эффектов надо бы избегать. Но если очень надо… то можно. В крайнем случае спрячем их в eval-when
и сделаем вид, что их не было %)
Исходная версия Nervous, :
Куча макросов имеет сайд-эффекты (def макросы по определению сайд-эффектят — модифицируют текущее окружение, это смысл вообще их существования) и никто не делает из этого драмы
Поправочка: есть разница между сайд-эффектами результата раскрытия макроса (код, который макрос возвращает) и сайд-эффектами кода, который генерирует этот код (собственно тело макроса).
def
-like макросы — это первый случай и тут по уместности сайд-эффектов ни у кого возражений нет — это обычный кот, которому всё можно. Со вторым немного сложнее — мнения сходятся на том, что там сайд-эффектов надо бы избегать. Но если очень надо… то можно. В крайнем случае спрячем их в eval-when
%)