web-dev-qa-db-ja.com

Elispで記号を文字列に変換する

Emacs lispでシンボルタイプを文字列に変換するにはどうすればよいですか?

symbol-to-string関数などは見つかりませんでした。

69
Cristian

symbol-name を使用してみてください:

(symbol-name 'some-symbol)
87
Trey Jackson

シンボル名(文字列)を指定すると、シンボルの値を取得できます。 Trey Jacksonのソリューションの使用:

(setq ASymbol 10)  => 10
(intern "ASymbol")  => 'ASymbol (e.g. the unevaluated symbol with name "ASymbol")
(symbol-value (intern "ASymbol")) => 10

これは、名前しかないシンボルの値を取得する場合に役立ちます。たとえば、文字列からそれらを読み取ります。

注意事項:internは、指定した名前のシンボルの値を返します。そのような名前のシンボルが存在しない場合は、その名前のシンボルが作成されます。 intern-softを使用すると、指定した名前のシンボルが存在しない場合に新しいシンボルが導入されるのを回避できます。