2009-05-26 11 views
58

elisp में, वहाँ है एक 'अगर' मामले में जहां मैं कई अलग अलग बातें प्रदर्शन करने के लिए करना चाहते हैं:elisp 'if' कथन में आप एकाधिक कथन कैसे लिख सकते हैं?

(if condition 
    (do-something) 
    (do-something-else) 
    ...) 

हालांकि, (कर-कुछ-कुछ और) केवल बाकी-मामले में निष्पादित किया जाता है। निष्पादित करने के लिए आप निर्देशों के ब्लॉक को कैसे निर्दिष्ट कर सकते हैं?

(if condition 
    (begin 
     (do-something) 
     (do-something-else) 
     ...)) 

उत्तर

71

उपयोग progn: उदाहरण के लिए:

(if condition 
    (progn 
     (do-something) 
     (do-something-else))) 
42

कोई else आवश्यक है, यह अधिक पठनीय उपयोग करने के लिए हो सकता है:

(when condition 
    (do-something) 
    (do-something-else)) 

और, वहाँ बातचीत

(unless (not condition) 
    (do-something) 
    (do-something-else)) 
है

Emacs Lisp manual for conditionals देखें।

+2

एफडब्ल्यूआईडब्ल्यू, मैं आम तौर पर * सामान्य 'लिस्पी भाषा * में' कब 'और' जब तक 'का उपयोग करने का सुझाव देता हूं, जब वापसी मूल्य महत्वपूर्ण नहीं होता है (यानी, वे केवल साइड इफेक्ट्स के लिए उपयोग किए जाते हैं)। जब मैं वापसी मूल्य महत्वपूर्ण होता हूं तो मैं आम तौर पर 'और' और' या' का उपयोग करता हूं। मैं आमतौर पर 'if' और' cond' का उपयोग करता हूं जब कई शाखाएं होती हैं (चाहे वापसी मान महत्वपूर्ण है या नहीं)। – Drew

संबंधित मुद्दे