2009-11-23 10 views
9

मैं सोच रहा हूँ क्या अंतरअंतर तुतलाना

और

के बीच

(add-to-list 'flymake-allowed-file-name-masks 
     '("\\.py\\'" flymake-pylint-init)) 

(add-to-list flymake-allowed-file-name-masks 
     '("\\.py\\'" flymake-pylint-init)) 
apostrophe यहाँ के स्पष्ट अर्थ क्या है?

उत्तर

22

एस्ट्रोफ़े एक उद्धरण है, जो दुभाषिया को निम्नलिखित अभिव्यक्ति (प्रतीक नाम) का विश्लेषण नहीं करने के लिए कहता है। इस प्रकार, 'add-to-list प्रतीक प्राप्त करता है जिसमें सूची मूल्य शामिल है जिसका मूल्यांकन किया जाना है।

प्रतीकों के बारे में और जानने के लिए, Symbol दस्तावेज़ीकरण पढ़ें (विशेष रूप से, Symbol Components प्रतीकों के नाम, मूल्य, कार्य परिभाषाएं और संपत्ति सूचियां हैं)।

प्रलेखन पढ़ने के बिना, इस तरह मैं इसे समझाता हूं: Emacs lisp's evaluation strategy मूल्य से गुजरना है (जैसा कि नाम या संदर्भ या किसी और के विपरीत है)। यदि उद्धरण वहां नहीं था, flymake-allowed-file-name-masks का मूल्यांकन मूल्य के लिए किया जाएगा, और add-to-list को सीधे सूची में काम करना होगा। यह निम्नलिखित अपवादों के साथ काम करेगा। यदि सूची खाली थी, तो मूल चर को इंगित करने के लिए कोई रास्ता नहीं होगा। इसी कारण से, आप सूची के सामने तत्वों को जोड़ने में सक्षम नहीं होंगे।

उन दो मामलों को काम करने के लिए, आपको वास्तव में परिवर्तनीय नाम की आवश्यकता है ताकि आप अंक संशोधित कर सकें।

शायद यह निम्नलिखित पढ़ने के लिए उपयोगी होगा: Introduction to Evaluation, Modifying List Variables, और Modifying Existing List Structures

यदि आप box diagrams से परिचित हैं, तो शायद यह मदद करेगा।

कल्पना कीजिए एक सूची है कि some-var अंक:

somevar 
    | 
    | 
    v 
--- ---  --- ---  --- ---   
| | |--> | | |--> | | |--> nil 
--- ---  --- ---  --- ---   
    |   |   |    
    |   |   |    
    --> rose  --> violet --> buttercup 

और आप उस सूची के मोर्चे पर कुछ डाल करने के लिए चाहता था।

यदि सब आप के साथ काम करना है somevar में सूचक की मूल्य है, तो सबसे अच्छा तुम कर सकते हो एक नए तत्व सूची के सामने पर डाल दिया जाता है, लेकिन आप वास्तव में क्या somevar अंक के लिए संशोधित नहीं कर सकते (क्योंकि आपके पास somevar नहीं है, तो आपके पास मान है)। इसलिए जैसा:

   somevar 
       | 
       | 
       v 
--- ---  --- ---  --- ---  --- ---   
| | |--> | | |--> | | |--> | | |--> nil 
--- ---  --- ---  --- ---  --- ---   
    |   |   |   |    
    |   |   |   |    
    --> tulip  --> rose  --> violet --> buttercup 

तो, अपने स्वयं के 'add-to-list समारोह लिखने के लिए, आप चर नाम की जरूरत है।

बेशक, यदि आपने 'add-to-list को macro के रूप में लिखा है, तो आपके पास वह प्रतिबंध नहीं होगा।

+1

मुझे अब सही अवधारणा मिली है! इसे अन्य भाषाओं में संदर्भ द्वारा मूल्य और कॉल द्वारा कॉल के साथ तुलना की जा सकती है! धन्यवाद! – kjshim