LINUX.ORG.RU

История изменений

Исправление Nervous, (текущая версия) :

Куча макросов имеет сайд-эффекты (def макросы по определению сайд-эффектят — модифицируют текущее окружение, это смысл вообще их существования) и никто не делает из этого драмы

Поправочка: есть разница между сайд-эффектами результата раскрытия макроса (код, который макрос возвращает) и сайд-эффектами кода, который генерирует этот код (собственно тело макроса).

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

Исходная версия Nervous, :

Куча макросов имеет сайд-эффекты (def макросы по определению сайд-эффектят — модифицируют текущее окружение, это смысл вообще их существования) и никто не делает из этого драмы

Поправочка: есть разница между сайд-эффектами результата раскрытия макроса (код, который макрос возвращает) и сайд-эффектами кода, который генерирует этот код (собственно тело макроса).

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