85

How can I convert a symbol type into a string in Emacs lisp?

I wasn't able to find a symbol-to-string function or anything similar.

Cristian
  • 42,563
  • 25
  • 88
  • 99

2 Answers2

109

Try using symbol-name:

(symbol-name 'some-symbol)
giordano
  • 8,087
  • 3
  • 23
  • 48
Trey Jackson
  • 73,529
  • 11
  • 197
  • 229
5

Given a symbol name (a string), you can get the symbol's value. Using Trey Jackson's solution:

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

This is useful if you want to get the values of symbols for which you only have names. For instance, you read them from a string.

A few notes: intern returns the value of the symbol with the given name. If no symbol with such a name exists, it creates a symbol with that name. You can use intern-soft to avoid introducing a new symbol if one with the given name does not exists.

tuomastik
  • 4,559
  • 5
  • 36
  • 48