Ich habe ungefähr zwei Makros (und Klettern) in meiner Codebasis, die so aussehen:
%Vor%und das:
%Vor% Jedes der Makros hat die folgende Aufrufsyntax: (def-stat-method ranged-weapon :ranged-weapon)
Ich möchte ein Makro (def-foo-method macro-name method)
, das in die entsprechenden Makros expandiert, so dass (def-foo-method def-stat-method stats)
in das erste obige Beispiel expandiert. Ich bin ein lispeln Neuling und weiß nicht wirklich, wie man das macht. Alle Hilfe geschätzt.
Für mich sieht dieser Code langsam aus. Ein objektorientierter Runtime-Versand plus Suche in einer Property-Liste? Warum?
Manchmal werden Eigenschaftenlisten zu CLOS-Objekten hinzugefügt, um Speicherplatz für nicht häufig verwendete Slots bereitzustellen oder sie leicht erweiterbar zu machen (wobei alle Arten von Eigenschaften hinzugefügt werden können, ohne sie alle zu kennen, bevor das Programm ausgeführt wird). Im Allgemeinen ist es möglicherweise besser, die Eigenschaften zu echten Slots des Objekts zu machen.
Tags und Links macros lisp common-lisp