Подтвердить что ты не робот

Преобразование символа в строку в Elisp

Как преобразовать тип символа в строку в Emacs lisp?

Мне не удалось найти функцию symbol-to-string или что-то подобное.

4b9b3361

Ответ 1

Попробуйте использовать symbol-name:

(symbol-name 'some-symbol)

Ответ 2

Учитывая имя символа (строку), вы можете получить значение символа. Используя решение Трей Джексона:

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

Это полезно, если вы хотите получить значения символов, для которых у вас есть только имена. Например, вы читаете их из строки.

Несколько примечаний: intern возвращает значение символа с заданным именем. Если символ с таким именем не существует, он создает символ с таким именем. Вы можете использовать intern-soft, чтобы не вводить новый символ, если имя с указанным именем не существует.