Können Racket-Makros Schlüsselwortargumente übernehmen?

8

Ich möchte in Racket eine syntaktische Form erstellen, die ein Schlüsselwort-Argument akzeptiert, so wie manche Funktionen es können.

Nachdem ich es auf ein einfaches Beispiel reduziert habe, habe ich versucht zu schreiben:

%Vor%

Damit würde dann folgendes funktionieren:

%Vor%

Leider nennt Racket diese "schlechte Syntax", so offensichtlich war dieser Versuch nicht korrekt.

Kann das gemacht werden?

    
Taymon 10.04.2012, 18:31
quelle

1 Antwort

12

Schlüsselwörter in syntaktischen Mustern werden wie Literale wie Zahlen usw. behandelt, so dass Sie sie nicht als Schlüsselwörter angeben müssen. (Das ist nur für Bezeichner erforderlich.) Also die folgenden Arbeiten (beachten Sie, dass ich den Tippfehler behoben habe, den Sie im zweiten Beispiel hatten):

%Vor%

Siehe auch syntax-parse für ein Dienstprogramm, das sparen von Keywords einfacher.

    
Eli Barzilay 10.04.2012, 18:38
quelle