Ich denke, die Antwort ist nein, da das Ergebnis vonVerwendet Emacs einen globalen String-Cache?
(eq "a" "a")
ist nil
. Bedeutet das also, dass es schneller wäre, ein einzelnes konstantes Symbol zu erzeugen, das eine Zeichenkette und ein Byte enthält, um alles mit dem Symbol anstatt der eigentlichen Zeichenkette zu kompilieren? Ich bin mir nicht sicher, wie ich das richtig testen soll.
Wt Teil Ihrer Frage: Ja, es ist schneller, Symbole zu vergleichen (mit 'eq') als Strings (einschließlich der Strings, die Symbole benennen). – Drew
Ja, es ist falsch. Strings sind teuer in Emacs Lisp. Symbole und Puffer sind nicht teuer. Und wenn Sie möchten, können Sie Ihre eigenen Obrarays erstellen, die in Wirklichkeit Symbolsätze und Namensräume sind. – Drew