प्रतीक के सामने 'और #' के बीच क्या अंतर है?


22

मैं Emacs में थोड़ा नया हूँ। कुछ विन्यासों को देखते हुए, मैंने पाया कि "ऐड-हुक" में दो प्रकार के कमांड हैं।

(add-hook 'LaTeX-mode-hook #'LaTeX-math-mode)

तथा

(add-hook 'LaTeX-mode-hook 'LaTeX-math-mode)

इसने मुझे लंबे समय तक भ्रमित किया है और मुझे नहीं पता कि Google में "#" कैसे खोजा जाए ...

धन्यवाद।


2
माफ करना मेरा बुरा। उत्तर मिला: stackoverflow.com/questions/2701698/…
— X.Arthur

इन्हें भी देखें emacswiki.org/emacs/EmacsSymbolNotation
— xuchunyang

2
अन्य साइटों पर डुप्लिकेट ठीक हैं। हालांकि यहां एक है, जो लगभग एक डुप्लिकेट है। emacs.stackexchange.com/q/3595/50
— मालाबार

जवाबों:


21

Emacs Lisp में, यदि fooएक प्रतीक है, तो 'fooऔर #'fooपूरी तरह से बराबर हैं। बाद वाला फॉर्म (के साथ #') तब पसंद किया fooजाता है जब यह एक फ़ंक्शन होता है, क्योंकि यह इस तथ्य का दस्तावेजीकरण करता है कि इसका उद्देश्य फंक है।

आपके दो रूप इसलिए पूरी तरह से समतुल्य हैं, और जो #'पसंद किया गया है।

संपादित करें : जैसा कि मालाबार द्वारा इंगित किया गया है, यह बिल्कुल सच नहीं है: #'प्रतीकों पर बाइट-कंपाइलर का कारण होगा कि फ़ंक्शन परिभाषित नहीं होने पर चेतावनी का उत्सर्जन करें।

(ध्यान दें कि यह लैम्ब्डा-रूपों के लिए मामला नहीं है, जिसके लिए सादा 'बाइट-कंपाइलर को लैम्ब्डा-फॉर्म को संकलित करने से रोकता है, जैसा कि कहीं और प्रलेखित है । ध्यान दें कि यह अन्य लिस्प बोलियों में भी जरूरी नहीं है, उदाहरण के लिए। आम लिस्प #'fooजल्दी बाध्यकारी करता है।)


चेतावनियों के बारे में सही है। Lambdas के रूप में, #'के रूप में सादे बोली, जो नहीं है के लिए विरोध किया, लैम्ब्डा संकलित करने के लिए संकलक निर्देश देता है। मैंने उम्मीद से अधिक स्पष्ट तरीके से सुधार किया है।
— jch
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.