Il vantaggio dei macro igienici non è una delle capacità linguistiche: puoi scrivere macro che hanno una buona igiene usando gensym
e un'attenta quotazione / non quotazione ai tempi giusti. Tuttavia, le macro igieniche assicurano le tue macro hanno una buona igiene. In tal senso, è un po 'come il controllo dei caratteri.
Potrebbero esserci anche vantaggi per gli utensili rispetto ai macro igienici. La maggior parte dei sistemi macro igienici impongono controlli rigorosi su ciò che fa la macro e su come funziona (ad esempio, non è possibile eseguire codice arbitrario quando viene espansa una macro definita da syntax-case
di Scheme). Questo può rendere più facile scrivere programmi che "capiscono" la tua macro e possono fornire un supporto di strumenti aggiuntivo.
D'altra parte, ci sono alcuni casi in cui i macro non igienici possono essere utili. Ad esempio, se in realtà vuoi per acquisire un'associazione per una variabile specifica (ad es. macro anaforiche ) quindi penso che sei sfortunato se hai solo macro igieniche.