Fonti per l'apprendimento delle macro dello schema: define-syntax e Syntax-Rules
-
02-07-2019 - |
Domanda
Ho letto Primer delle regole di sintassi di JRM per Merely Eccentric e mi ha aiutato a capire le regole di sintassi e come è diverso dalla macro-definizione di common-lisp. syntax-rules è solo un modo per implementare un trasformatore di sintassi all'interno di define-syntax.
Sto cercando due cose, la prima è più esempi e spiegazioni delle regole di sintassi e la seconda è una buona fonte per imparare gli altri modi di usare la definizione-sintassi. Quali risorse mi consigliate?
Soluzione
Per rispondere alla tua seconda domanda: syntax-case
è l'altro modulo che si trova all'interno di define-syntax
. Kent Dybvig è il principale sostenitore di syntax-case
e ha un tutorial su come usarlo [PDF].
Ho anche leggi la documentazione dello schema PLT su syntax-case
per qualche altro esempio e per conoscere le variazioni nell'implementazione.
Altri suggerimenti
Il primer delle regole di sintassi del JRM è abbastanza buono, ma il capitolo 36 dei linguaggi di programmazione: applicazione e interpretazione, di Shriram Krishnamurti http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/ ) ha anche una buona copertura nella scrittura di macro Scheme. Tale materiale è stato utilizzato e migliorato in numerosi brevi articoli, relazioni tecniche, ecc. Negli ultimi 10 anni, quindi non è un "questo era vero sull'implementazione X dello schema nel 1983 che non è più accessibile".
L'elenco delle risorse in The Scheme Cookbook è un ottimo punto di partenza. Se preferisci i documenti, non esitare a visitare readscheme.org .
Fear of Macros è una guida pratica per l'utilizzo di macro in Racket. Mostra molti modi di usare define-syntax
. Il materiale potrebbe non essere completamente applicabile a Scheme, ma potresti trovare alcuni degli esempi utili per sapere cosa si può fare.