2011-01-10 11 views

Respuesta

67

Intente utilizar symbol-name:

(symbol-name 'some-symbol) 
+38

Y para el reverso, '(interno" some-string ")'. –

0

Dado un nombre de símbolo (una cadena), se puede obtener el valor del símbolo. Usando la solución de Trey Jackson:

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

Esto es útil si desea obtener los valores de los símbolos para los cuales solo tiene nombres. Por ejemplo, los lees de una cadena.

Algunas notas: intern devuelve el valor del símbolo con el nombre de pila. Si no existe ningún símbolo con ese nombre, crea un símbolo con ese nombre. Puede usar intern-soft para evitar introducir un nuevo símbolo si no existe uno con el nombre de pila.