Ich habe zwei Makros. Der erste nimmt ein Symbol als einzigen Parameter (weil es an def übergeben wurde, das ein Symbol benötigt). Die zweite Funktion nimmt eine Liste von Symbolen und sollte die erste mit jedem Symbol einzeln aufrufen.
%Vor%Das zweite Makro sollte eine Liste von Symbolen nehmen und sie an die erste weitergeben, aber ich kann es nicht zum Laufen bringen. Das Beste, was ich mir vorstellen konnte, war folgendes:
%Vor% erzwingt, dass die s#
ausgewertet wird, bevor sie an das erste Makro übergeben wird. Es wird auch mit einer Liste von Zeichenfolgen anstelle einer Liste von Symbolen aufgerufen.
Dies ist nützlich für eine Bibliothek, die ich verwende, für die alle Funktionen in der Bibliothek dieselben zwei ersten Parameter haben. Ich versuche, Wrapper-Funktionen in meinem Namespace für einige der Funktionen zu erstellen, die automatisch die ersten beiden Parameterwerte bereitstellt, die allen gemeinsam sind.
Irgendwelche Ideen, um das zu verbessern?
Wenn Sie normalerweise fragen, wie Sie zwei Makros zur Zusammenarbeit bringen, lautet die Antwort, sie nicht zu Makros zu machen. Ich denke, dass mein Blogbeitrag auf Macro-Writing-Makros zur Klärung beitragen wird. Für diese spezielle Situation würde ich wahrscheinlich zwei Vorschläge aus den Kommentaren kombinieren:
%Vor%Dies wird auf
erweitert %Vor%was im Prinzip so aussieht, wie Sie es wollen.
Edit: Wenn die Argumente, die Sie "immer" übergeben, für jede Funktion unterschiedlich sind, können Sie dies tun:
%Vor%