मेरे पास वैश्विक चर की एक बड़ी सूची है जिसमें प्रत्येक का अपना सेटअप फ़ंक्शन है। मेरा लक्ष्य इस सूची में जाना है, प्रत्येक आइटम के सेटअप फ़ंक्शन को कॉल करना है, और मिलान करने वाले चर में लोड किए गए डेटा पर कुछ आंकड़े उत्पन्न करना है। हालांकि, अब मैं जो कोशिश कर रहा हूं वह काम नहीं कर रहा है और मुझे अपने प्रोग्राम को सेटअप कार्यों को कॉल करने में मदद की ज़रूरत है।लिस्प में स्ट्रिंग के रूप में फ़ंक्शन नाम?
वैश्विक चर और उनके सेटअप फ़ंक्शन केस-संवेदी हैं क्योंकि यह XML से आया है और विशिष्टता के लिए आवश्यक है।
'(ABCD ABC\d AB\c\d ...)
और सेटअप कार्यों इस तरह दिखेगा:
(defun setup_ABCD...
(defun setup_ABC\d...
मैं उन्हें एक साथ श्रृंखलाबद्ध और एक समारोह में जिसके परिणामस्वरूप स्ट्रिंग मोड़ की कोशिश की है,
डेटा इस तरह दिखता है लेकिन यह पहले लोड किए गए सेटअप फ़ंक्शन के नामस्थान में हस्तक्षेप करता है। यहाँ कैसे मुझे लगता है कि लागू करने की कोशिश की है:
(make-symbol (concatenate 'string "setup_" (symbol-name(first '(abc\d)))))
लेकिन इस पर funcall
का उपयोग कर काम नहीं करता। मैं इससे कॉल करने योग्य फ़ंक्शन कैसे प्राप्त कर सकता हूं?
यदि कहीं भी आदमी का जवाब काम नहीं करता है, तो टिक पर क्लिक करके इसे स्वीकार करना अच्छा लगेगा। – Pablo
लिस्प में नामांकन मानक हाइफ़न का उपयोग करना है, अंडरस्कोर नहीं। साथ ही, पाठक आंतरिक रूप से सभी प्रतीकों को अपरकेस करता है, और मानक उन्हें कम मामले में लिखना है, इसलिए आपके सेटअप फ़ंक्शन को कॉल करने का मानक तरीका 'setup-abcd' है। – Svante
देरी टिक के लिए खेद है! इसके अलावा सेटअप एफएनएस एक गैर-लिस्पर द्वारा लिखे गए थे। मैंने तब से उसे Norvigs Lisp/AI पुस्तक की मेरी प्रतिलिपि दे दी है। – ktdh