Sources pour en savoir plus sur les macros de schéma: define-syntax and syntax-rules
-
02-07-2019 - |
Question
J'ai lu l'amorce des règles de syntaxe de JRM pour le Merely Eccentric et cela m'a aidé à comprendre les règles de syntaxe et leur différence avec la macro de définition de common-lisp. syntax-rules n'est qu'un moyen d'implémenter un transformateur de syntaxe dans define-syntax.
Je cherche deux choses, la première consiste en plusieurs exemples et explications des règles de syntaxe et la seconde constitue de bonnes sources pour apprendre les autres manières d'utiliser la syntaxe définie. Quelles ressources recommandez-vous?
La solution
Pour répondre à votre deuxième question: cas de syntaxe
est l'autre forme qui entre dans define-syntax
. Kent Dybvig est le principal promoteur de cas de syntaxe
et il a un tutoriel sur son utilisation [PDF].
J'ai également lu la documentation du schéma de PLT dans syntax-case
pour quelques exemples supplémentaires et pour en savoir plus sur les variations de mise en œuvre.
Autres conseils
L’introduction aux règles de syntaxe et de syntaxe JRM est très bonne, mais le chapitre 36 de Langages de programmation: application et interprétation, par Shriram Krishnamurti http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/ ) offre également une bonne couverture de l’écriture de macros Scheme. Ces documents ont été utilisés et améliorés au cours de plusieurs années, rapports techniques, etc., au cours des dix dernières années. Ce n’est donc pas un article «c’est vrai», c’est vrai au sujet de la mise en œuvre X de Scheme en 1983
La liste des ressources disponible sur le Scheme Cookbook est un excellent point de départ. Si vous préférez des papiers, n'hésitez pas à aller sur readscheme.org .
La peur des macros est un guide pratique pour utiliser des macros en raquette. Il montre de nombreuses façons d’utiliser define-syntax
. Le matériel peut ne pas être complètement applicable à Scheme, mais vous pouvez trouver certains exemples utiles pour savoir ce qui peut être fait.