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