जवाबों:
हाँ। से नामांकित विशेषताएं (जोर मेरा):
एक सुविधा नाम एक प्रतीक है जो फ़ंक्शन, चर आदि के संग्रह के लिए खड़ा है। उन्हें परिभाषित करने वाली फ़ाइल को सुविधा प्रदान करनी चाहिए। एक अन्य कार्यक्रम जो उनका उपयोग करता है, वे यह सुनिश्चित कर सकते हैं कि उन्हें सुविधा की आवश्यकता के द्वारा परिभाषित किया गया है। यदि यह पहले से लोड नहीं किया गया है तो यह परिभाषाओं की फ़ाइल को लोड करता है।
एक सुविधा की उपस्थिति की आवश्यकता के लिए,
requireसुविधा नाम के साथ तर्क के रूप में कॉल करें ।requireवैश्विक वैरिएबल मेंfeaturesयह देखने के लिए कि क्या वांछित सुविधा पहले से ही प्रदान की गई है। यदि नहीं, तो यह उपयुक्त फ़ाइल से सुविधा को लोड करता है । इस फ़ाइल कोprovideफीचर को जोड़ने केfeaturesलिए शीर्ष स्तर पर कॉल करना चाहिए ; यदि यह ऐसा करने में विफल रहता है, तोrequireएक त्रुटि का संकेत देता है ।
हां, बशर्ते कि कोड उस नियम का सम्मान करता हो helm.elया helm.elcकहता हो जिसे उसे कॉल करना होगा (provide 'helm)। कॉल (provide 'helm)प्रतीक helmको एक लोड की गई विशेषता के रूप में चिह्नित करता है , और इसके कारण दूसरा कॉल (require 'helm)कुछ भी नहीं करता है।
यदि लोड किया गया पैकेज कॉल नहीं करता है, provideतो requireएक त्रुटि का संकेत देता है, और सुविधा को लोड के रूप में चिह्नित नहीं किया जाता है, इसलिए दूसरी कॉल (require 'helm)लोड करने का प्रयास करेगी (और आमतौर पर उसी कारण से फिर से विफल हो जाती है)।