Ich versuche, eine Zeichenfolge zu nehmen und sie in einen Variablennamen umzuwandeln. Ich würde zwar (make-symbol) oder (intern) das machen, aber anscheinend ist es nicht ganz das, was ich will, oder ich benutze es falsch.
Zum Beispiel:
%Vor%Hier würde ich versuchen, eine Variable mit dem Namen 'foo' mit einem Wert von 5 zu erstellen. Außer dem obigen Code gibt mir einen Fehler. Nach welchem Befehl suche ich?
Hier sind einige Dinge zu beachten:
SETF
wertet das erste Argument nicht aus. Es erwartet ein Symbol oder ein Formular, das einen zu aktualisierenden Speicherort angibt. Verwenden Sie stattdessen SET
.
Je nach Jahrgang und Einstellungen Ihrer Common Lisp-Implementierung können Symbolnamen standardmäßig in Großbuchstaben angezeigt werden. Daher kann der zweite Verweis auf foo
sich tatsächlich auf ein Symbol beziehen, dessen Name "FOO"
ist. In diesem Fall müssten Sie (intern "FOO")
verwenden.
Der Aufruf von STRING
ist harmlos, aber unnötig, wenn der Wert bereits eine Zeichenfolge ist.
Versuchen Sie Folgendes:
%Vor%Verwenden:
%Vor%Dies funktioniert auch mit einer Variablen:
%Vor%Beachten Sie auch, dass Symbole standardmäßig intern als Großbuchstaben erstellt werden. Wenn Sie über einen String auf ein Symbol zugreifen wollen, müssen Sie einen String in Großbuchstaben verwenden.
Tags und Links common-lisp symbol