2009-08-07 7 views
9

मैं कंडैप क्लॉज का उपयोग करना चाहता हूं लेकिन मुझे नहीं पता कि किसी भी बेजोड़ खंड को कैसे पकड़ें। मैं उसको कैसे करू?मैं कैसे लिखूं: अन्यथा क्लोजर में शंकु में?

(defn subst[id value W-lang] 
    (let [[type expr][(first W-lang)(rest W-lang)]] 
    (condp = type 
     'num (first expr) 
     'add expr  
     ***** expr))) 

उत्तर

17

documentation for condp का कहना है:

एक एकल डिफ़ॉल्ट अभिव्यक्ति खंड का पालन कर सकते हैं, और यदि कोई धारा से मेल खाता है अपने मूल्य लौटा दी जाएगी। यदि कोई डिफ़ॉल्ट अभिव्यक्ति प्रदान नहीं की जाती है और कोई खंड मिलान नहीं होता है, तो एक अवैध अर्ग्यूमेंट अपवाद फेंक दिया जाता है।

तो:

(condp = type 
    'num (first expr) 
    'add expr 
    expr))) 
संबंधित मुद्दे