2012-05-03 17 views
28

the chain documentation में आप पाएंगे:क्या underscore.js में चेन फ़ंक्शन एक मोनड बनाता है?

एक लिपटे वस्तु पर chain कॉलिंग भविष्य की सभी विधि का कारण होगा कॉल लिपटे वस्तुओं वापस जाने के लिए और साथ ही। जब आप गणना समाप्त कर चुके हैं, तो अंतिम मान पुनर्प्राप्त करने के लिए value का उपयोग करें।

तो क्या chain फ़ंक्शन एक मोनड बनाता है?

+3

मैंने इस हैकेल को टैग किया है, क्योंकि इस विषय पर हैकेलर के पास कुछ कहना है। – Marcin

उत्तर

38

नहीं, एक मोनड नहीं, बल्कि एक कॉमोनड! यह एक ऐसा फ़ंक्शन बदलता है जो एक लपेटा हुआ ऑब्जेक्ट लेता है और एक सामान्य मान को उस फ़ंक्शन में देता है जो दोनों एक लिपटे ऑब्जेक्ट को लेता है और देता है। एक हास्केल प्रकार हस्ताक्षर के रूप में है कि होगा:

(Wrapped a -> b) -> (Wrapped a -> Wrapped b) 

value के प्रकार के हस्ताक्षर है:

Wrapped a -> a 

ये ठीक कर रहे हैं आप एक comonad के लिए क्या जरूरत है। पहले समारोह को आमतौर पर extend और दूसरा extract कहा जाता है।

आप कुछ अतिरिक्त संदर्भ के साथ एक कॉमोनैड के मूल्य के रूप में सोच सकते हैं। और यह निश्चित रूप से बिल्कुल chain करता है।

कॉमोनैड्स के बारे में अधिक जानकारी के लिए this Stackoverflow question देखें।

+8

मुझे यह जवाब पसंद है; मुझे लगता है कि अगर आप अंडरस्कोर ऑब्जेक्ट विधियों के प्रकारों पर मैपिंग की व्याख्या करना चाहते हैं तो यह अधिक स्पष्ट होगा कि आपका क्या मतलब है। अगर मैं सही ढंग से समझता हूं, तो तरीकों को आम तौर पर 'ए -> बी' लपेटा जाता है लेकिन वह 'चेन' एक ऑब्जेक्ट देता है जिसकी विधियां ('मान' को छोड़कर) सभी 'लपेटी गई हैं -> लपेटा हुआ बी। मुझे थोड़ा हास्केल पता है, लेकिन सवाल मूल रूप से हास्केल को टैग नहीं किया गया था, इसलिए जेएस लाइब्रेरी में आपके उत्तर मानचित्र कैसे उपयोगी हो सकते हैं। – ellisbben

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