ऐसा प्रतीत होता है कि अधिकांश (यदि नहीं सभी) वैश्विक declarations को एएनएसआई सीएल मानक तरीके से वापस नहीं किया जा सकता है।'घोषणा' घोषणा को पूर्ववत कैसे करें?
जैसे, एक बार आप (proclaim '(declaration my-decl))
या (declaim (special *my-var*))
कुछ ऐसे स्वरूप का मूल्यांकन (सीधे या एक फ़ाइल लोड करके) कोई पोर्टेबल(declare (my-decl ...))
गैर-कानूनी या *my-var*
शाब्दिक बनाने के लिए रास्ता है।
विभिन्न कार्यान्वयन special
घोषणा को वापस करने के लिए गैर-पोर्टेबल तरीका प्रदान करता है, आमतौर पर (proclaim '(notspecial *my-var*))
या कुछ अन्य चाल के माध्यम से।
declaration
proclamation के बारे में कैसे?
विभिन्न कार्यान्वयन कैसे पूर्ववत करते हैं? आप इसे कैसे कार्यान्वित करेंगे? क्या आपको लगता है कि (proclaim '(notdeclaration my-decl))
एक अच्छा विचार है?
प्रेरणा: एक परीक्षण सूट में, मॉड्यूलर होना अच्छा होगा - परीक्षण सूट भागों के साथ किसी भी संभावित हस्तक्षेप से बचने के लिए परीक्षण विवरणों के सभी प्रभावों को वापस करने में सक्षम होना। मुझे पता है कि यह एक हफ्ते की प्रेरणा है क्योंकि सही तरीका packages का उपयोग करना है।
हम्म। यदि आप परिवर्तनीय के प्रतीक को अनइंटर करते हैं तो क्या होता है? यह शायद एक बुरा विचार किया जाएगा के रूप में यह गंदगी प्रतीक –
मैं SBCL में यह करने के लिए किसी भी उचित तरीके से नहीं दिख रहा है करने के लिए पुराने/नई संदर्भ के बीच कोई सीमा होगी, लेकिन ऐसा लगता है '(setf (sb-पूर्णांक लगता है: जानकारी : घोषणा: मान्यता प्राप्त नाम-घोषणा) शून्य) 'यह करेगा। – jkiiski