Преимущество гигиенических макросов заключается не в языковых возможностях - вы можете писать макросы с хорошей гигиеной, используя gensym
аккуратные цитаты / отрывки в нужное время. Однако гигиенические макросы гарантируют, что ваши макросы имеют хорошую гигиену. В этом отношении это немного похоже на проверку типов.
Там также могут быть преимущества инструментов для гигиенических макросов. Большинство гигиенических макросистем устанавливают строгий контроль над тем, что делает ваш макрос и как он это делает (например, вы не можете выполнить произвольный код, когда макрос, определенный схемами, syntax-case
раскрыт). Это может облегчить написание программ, которые «понимают» ваш макрос и могут обеспечить дополнительную поддержку инструментов.
С другой стороны, в некоторых случаях полезны негигиенические макросы. Например, если вы действительно хотите захватить привязку для определенной переменной (например, анафорических макросов ), то я думаю, что вам не повезло, если у вас есть только гигиенические макросы.