Pourquoi est-ce que quelqu'un préférerait les macros de Scheme sur les macros Common Lisp (et je veux vraiment savoir aussi, je n'essaie pas d'être un troll)? Mon expérience en tant que newb Lisp est que les macros de style Common Lisp sont beaucoup plus faciles à apprendre que les macros de Scheme. Je n'ai encore vu aucun avantage aux macros de Scheme, mais bien sûr cela ne signifie pas qu'elles n'existent pas. Je sais que les macros de Scheme sont "hygiéniques", mais je ne suis toujours pas convaincu que cela vaille la complexité supplémentaire. D'un autre côté cependant, est personnes qui sont convaincues que cela est nécessaire, sinon il n'y aurait pas d'implémentation de macros Scheme en Common Lisp.Quels sont les avantages des macros de schéma?
Pour faire une histoire courte, quelqu'un peut-il défendre les macros de Scheme à moi?
Les macros de schémas ne sont pas moins puissantes que les macros CL - seules les règles de syntaxe restreintes par appariement de motifs sont moins puissantes. Les macros de style 'syntax-case' arbitraires sont aussi puissantes que les macros CL, et en fait plus puissantes car les macros CL ignorent presque toutes les informations lexicales. –
@Eli Barzilay: plusieurs implémentations CL fournissent l'information lexicale en utilisant l'interface aux 'environnements' décrits dans CLtL2. –
Notez que j'ai dit * presque-formel *. Je suis à peu près sûr qu'Oleg a montré que même les 'règles de syntaxe 'sont complètes. À mon avis, les restrictions sur «syntax-rules» et «syntax-case», même si «syntax-case» a des moyens plus simples, sont en place pour éviter les bogues subtils dans les macros complexes (et de faire des documents publiables bien sûr). Mais je pense aussi que ces restrictions rendent les macros simples beaucoup moins pratiques qu'avec le système macro CL. –