Emacs Lisp में, अगर चर को परिभाषित किया जाता है तो मैं कैसे जांच करूं?
जवाबों:
आप बाउंड चाहते हैं: यदि वेरिएबल (कोई प्रतीक) शून्य नहीं है, तो रिटर्न अधिक सटीक, यदि इसका वर्तमान बंधन शून्य नहीं है। यह अन्यथा शून्य देता है।
(boundp 'abracadabra) ; Starts out void.
=> nil
(let ((abracadabra 5)) ; Locally bind it.
(boundp 'abracadabra))
=> t
(boundp 'abracadabra) ; Still globally void.
=> nil
(setq abracadabra 5) ; Make it globally nonvoid.
=> 5
(boundp 'abracadabra)
=> t
Dfa के उत्तर के अलावा आप यह भी देखना चाहते हैं कि क्या यह एक फ़ाउंडेशन का उपयोग करके फ़ंक्शन के रूप में बाध्य है :
(defun baz ()
)
=> baz
(boundp 'baz)
=> nil
(fboundp 'baz)
=> t
यदि आप emacs के भीतर से एक वैरिएबल मान की जांच करना चाहते हैं (मुझे नहीं पता कि क्या यह लागू होता है, क्योंकि आपने "Emac Lisp" में लिखा है?):
M-:Evalमिनी बफर में शुरू होता है। वेरिएबल के नाम पर लिखें और रिटर्न को दबाएं। मिनी-बफर वेरिएबल का मान दिखाता है।
यदि चर परिभाषित नहीं है, तो आपको डीबगर त्रुटि मिलती है।
M-: (boundp 'the-variable-name) RETत्रुटि को ट्रिगर करने की आवश्यकता के बिना जांच करेगा।
याद रखें कि मान शून्य होने वाले चर को परिभाषित किया जा रहा है।
(progn (setq filename3 nil) (boundp 'filename3)) ;; returns t
(progn (setq filename3 nil) (boundp 'filename5)) ;; returns nil