मैं, कैसे defun मैक्रो काम करता है के बारे में उलझन में हूँ क्योंकिक्यों defun समान नहीं है (setq <name><lambda>)?
(defun x() "hello")
समारोह एक्स निर्माण करेंगे, लेकिन प्रतीक अभी भी x अनबाउंड हो जाएगा।
अगर मैं एक्स के लिए कुछ लैम्ब्डा बाध्य होगी और फिर एक्स एक मूल्य होगा, लेकिन यह इस तरह के रूप में समारोह के रूप में दुभाषिया द्वारा नहीं माना जाएगा:
(x)
मुझे लगता है कि यह से संबंधित है तथ्य यह है कि डिफ्यून को वैश्विक पर्यावरण में कार्य को परिभाषित करना चाहिए, लेकिन मुझे यकीन नहीं है कि इसका क्या अर्थ है। मैं इसे वर्तमान माहौल में क्यों छाया नहीं कर सकता?
क्या कुछ लैम्ब्डा इसके लिए बाध्य था तो दुभाषिया उपचार प्रतीक को कार्य के रूप में बल देने का कोई तरीका है? उदाहरण के लिए:
(setq y (lambda() "I want to be a named function"))
(y)
पीएस .: मैं एसबीसीएल का उपयोग कर रहा हूं।