मैं वापस `nil` कैसे ला सकते हैं?


18

मैंने गलती से निम्नलिखित किया है:

(unintern variable)

जहां variableके मूल्य था nil

मैं कैसे मिलता है nilEmacs को पुन: प्रारंभ बिना वापस?


3
मुझे व्यंग्य बनाने के लिए +1। :-) एक कृपालु तरीके से नहीं, लेकिन एक "मैं पूरी तरह से ऐसा ही करूंगा"।
Malabarba

@ मलबारबा :) यह वास्तव में एक विनम्र अहसास था जब मुझे पता चला कि मैंने क्या किया है
सीन एलेड

1
आप नहीं के बराबर नष्ट कर सकते हैं! उसे आते हुए नहीं देखा।
Gambo

@Gambo न तो मैं :) किया
शॉन Allred

जवाबों:


19

(defconst nil ())

सही प्रभाव है लगता है, कि नोट nilऔर एक खाली सूची Emacs लिस्प में अप्रभेद्य हैं।

मैं को देखा lread.c:4034देखने के लिए कैसे nilएक में बनाई गई है obarray

पर टिप्पणी नोट में लाइन 3896lread.c :

/* There are plenty of other symbols which will screw up the Emacs
     session if we unintern them, as well as even more ways to use
     `setq' or `fset' or whatnot to make the Emacs session
     unusable.  Let's not go down this silly road.  --Stef  */
  /* if (EQ (tem, Qnil) || EQ (tem, Qt))
       error ("Attempt to unintern t or nil"); */

यही कारण है Emacs के खिलाफ की रक्षा नहीं करता (unintern nil)और (unintern t)


बहुत चालाक! मैं Stefइस पर सहमत हूं , वास्तव में :) उस सड़क के नीचे पागलपन है।
सीन ऑल्रेड

Bleh। मैं यहाँ sm पर rms से सहमत हूँ। Uninterning nilएक सामान्य त्रुटि है जिससे बचाव करना आसान है। क्यों एक सीढ़ी पर एक रेलिंग डाल जब लोगों को इस पर कूद सकता है?
गिल्स एसओ- बुराई को रोकना '

@ गिल्स मैं इस बारे में सोचता हूं क्योंकि मैं सी के बारे में सोचता हूं: सी दर्शन को बनाए रखता है कि प्रोग्रामर जानता है कि वह क्या कर रहा है और उसे खुद को व्यक्त करने के लिए एक तरीके की आवश्यकता है। IMO, हम Emacs के विधानसभा भाषा के रूप में तुतलाना Emacs संबंध चाहिए; उच्च कपोल-कल्पना (और गार्ड / सुविधाओं) एक भाषा है कि compiles elisp में जोड़ा जाना चाहिए। लेकिन उस निश्चित रूप से एक और माध्यम के लिए :) एक विषय है
शॉन Allred

uninternअक्सर उपयोग नहीं किया जाता है, वास्तव में। इसका मुख्य रूप obarrayसे उपयोग करना हमेशा बहुत बुरा विचार होता है (यही वजह है कि बाइट-कंपाइलर शिकायत करता है जब आप दूसरे तर्क को पारित करने में विफल होते हैं, और आपको C-h f uninternयह नहीं बताता है कि दूसरा arg वास्तव में अभी भी वैकल्पिक है)।
स्टीफन

@Stefan ऐसा लगता है कि यह एक दस्तावेज बग है, फिर:
शॉन एल्ड्रेड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.