2012-05-21 15 views
13

उदाहरण के लिए अगर मैं निम्नलिखित समारोहपैरामीटर को परिभाषित करते समय गणित एक अंडरस्कोर का उपयोग क्यों करता है?

exprod[n_] := Expand[Product[x + i, {i, 1, n}]] 

फिर परिभाषित करने गया था क्यों है चर n के बाद अंडरस्कोर, समारोह परिभाषा आवश्यक? यह शैली कहां से आती है या यह केवल गणित प्रोग्रामिंग भाषा के लिए विशिष्ट है?

+0

मुझे लगता है कि इस समुदाय विकी होगा होना चाहिए? मैं पूरी तरह से यकीन नहीं कर रहा हूँ। – ripit

+0

अब एक [स्टैक एक्सचेंज साइट सिर्फ गणित के लिए] है (http://mathematica.stackexchange.com/)। कृपया भविष्य के प्रश्न पूछने पर विचार करें। – Verbeia

उत्तर

16

अंडरस्कोर पैटर्न मिलान से आता है।

x_ कुछ भी मेल खाता है और यह कुछ भी कार्य के शरीर में x नाम से जुड़ा हुआ है।

l[x_ * y_] := l[x] + l[y]; 
एल में

फिर [2 * z] पहली अभिव्यक्ति 2 * z पैटर्न x_ * y_ के खिलाफ मिलान किया जाता है। फिर एक्स 2 से बाध्य है और y z से जुड़ा हुआ है। तब अभिव्यक्ति एल [x] + l [y] का मूल्यांकन किया जाता है, और परिणाम एल [2] + एल [z] बन जाता है।

अब कहें कि हम ई पर मूल्य 1 को परिभाषित करना चाहते हैं। क्या हम एल [ई]: = 1 या एल [ई_]: = 1 लिखते हैं?

एक का कहना है कि करने के लिए (शाब्दिक) अलग-अलग ई एल 1. अन्य का कहना है कि कुछ करने के लिए एल देता है कि 1.

http://reference.wolfram.com/mathematica/tutorial/Introduction-Patterns.html

+2

बहुत बहुत धन्यवाद। यह एक दिलचस्प पढ़ा था और वास्तव में जो मैं खोज रहा था। – ripit