2011-01-10 7 views
55

में प्रतीक को एक स्ट्रिंग में कनवर्ट करें I Emacs lisp में एक प्रतीक प्रकार को एक स्ट्रिंग में कैसे परिवर्तित कर सकता हूं?एलिस्प

मैं symbol-to-string फ़ंक्शन या कुछ भी समान नहीं ढूंढ पाया।

उत्तर

67

symbol-name उपयोग करके देखें:

(symbol-name 'some-symbol) 
+38

और इसके विपरीत, '(इंटर्न" कुछ-स्ट्रिंग ")'। –

0

एक प्रतीक का नाम (एक स्ट्रिंग) को देखते हुए, आप प्रतीक के मूल्य प्राप्त कर सकते हैं। ट्रे जैक्सन के समाधान का उपयोग करना:

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

यह उपयोगी है आप जिसके लिए आप केवल नाम है प्रतीकों के मूल्यों को प्राप्त करना चाहते हैं। उदाहरण के लिए, आप उन्हें एक स्ट्रिंग से पढ़ते हैं।

कुछ नोट्स: intern दिए गए नाम के साथ प्रतीक का मान देता है। यदि इस तरह के नाम के साथ कोई प्रतीक मौजूद नहीं है, तो यह उस नाम के साथ एक प्रतीक बनाता है। यदि आप दिए गए नाम के साथ कोई मौजूद नहीं है तो आप एक नया प्रतीक पेश करने से बचने के लिए intern-soft का उपयोग कर सकते हैं।