मैंने cats documentation में टाइपक्लास Apply
और Applicative
के बारे में पढ़ा। मुझे आश्चर्य है कि पुस्तकालय सिर्फ एक प्रकार की कक्षा Applicative
की बजाय दो अलग-अलग प्रकार के वर्ग प्रदान करता है, जो Functor
का विस्तार करेगा और ap
जोड़ देगा? क्या कोई Apply
का उपयोग करता है जो Applicative
नहीं है?हमें आवेदन और आवेदक प्रकार के वर्गों को अलग करने की आवश्यकता क्यों है?
8
A
उत्तर
12
Applicative
pure
विधि प्रदान करता है, जो "अंदर आने" का एक तरीका है। अन्यथा, यद्यपि आप F[A]
F[B]
को परिवर्तित कर सकते हैं, के साथ या तो A => B
(map
के माध्यम से) या F[A => B]
(ap
के माध्यम से), आप एक F
अंदर कुछ भी डाल करने के लिए क्षमता नहीं है। तो आप दूसरों को आपके लिए यह करने के लिए सीमित हैं।
Applicative
के साथ अंतर यह है कि आप कुछ भी नहीं से शुरू कर सकते हैं।
के बाद या तो उपयोगी हो सकता है, Applicative
और Apply
हैं अलग typeclasses (और "नहीं, अपने हाथों से रखने के लिए, और आप दिया जाता है क्या पर कार्य करते हैं" "आप एक F
में चीजों को डाल करने के लिए अधिकार दिया गया है")।
संबंधित मुद्दे
- 1. जावा: रैपर वर्गों की आवश्यकता क्यों है?
- 2. हमें JSON ऑब्जेक्ट्स को फ़्लैट करने की आवश्यकता क्यों है?
- 3. हमें लक्ष्य नामस्थान की आवश्यकता क्यों है?
- 4. हमें np.squeeze() की आवश्यकता क्यों है?
- 5. हमें सी # प्रतिनिधियों की आवश्यकता क्यों है
- 6. . हमें System.gc(); को कॉल करने की आवश्यकता क्यों है ??
- 7. हमें "आउट" पैरामीटर की आवश्यकता क्यों है?
- 8. हमें संरचना की आवश्यकता क्यों है? (सी #)
- 9. हमें फ़ील्ड टैग की आवश्यकता क्यों है?
- 10. हमें strdup() की आवश्यकता क्यों है?
- 11. हमें वेब-सॉकेट की आवश्यकता क्यों है?
- 12. हमें यहां अंतहीनता की आवश्यकता क्यों है?
- 13. हमें "हटाएं []" ऑपरेटर की आवश्यकता क्यों है?
- 14. हमें स्थिर रचनाकारों की आवश्यकता क्यों है?
- 15. हमें डिज़ाइन पैटर्न की आवश्यकता क्यों है
- 16. हमें यहां टाइपनाम की आवश्यकता क्यों है?
- 17. हमें टेंसरफ्लो टीएफ.ग्राफ की आवश्यकता क्यों है?
- 18. हमें वर्चुअल मेमोरी की आवश्यकता क्यों है?
- 19. हमें जेडीबीसी के लिए कनेक्शन पूलिंग की आवश्यकता क्यों है?
- 20. हमें RuntimeException में प्रयास करने की आवश्यकता क्यों नहीं है?
- 21. हमें डेटाबेस और फ़ाइल सिस्टम के लिए बी-ट्री जैसे अलग डेटास्ट्रक्चर की आवश्यकता क्यों है?
- 22. हमें असेंबली में .data और .text सेक्शन को परिभाषित करने की आवश्यकता क्यों है?
- 23. अलग आईशैच और डीसीएके की आवश्यकता क्यों है
- 24. परीक्षण के अलावा, हमें डैगर 2 की आवश्यकता क्यों है?
- 25. हमें ढांचे के ढांचे की आवश्यकता क्यों है?
- 26. हमें जावा में डिफ़ॉल्ट तरीकों की आवश्यकता क्यों है?
- 27. हमें मूल क्वेरी बनाने की आवश्यकता क्यों है?
- 28. हमें ब्लॉक मैक्रो के आसपास कोष्ठक की आवश्यकता क्यों है?
- 29. हमें तीसरे पक्ष के निर्माण उपकरण की आवश्यकता क्यों है?
- 30. हमें क्यों जारी रखने की विधि की आवश्यकता है?
धन्यवाद। मैने सोचा कि मैंने पा लिया। क्या आप 'आवेदन' का उपयोग करने का एक उदाहरण दे सकते हैं जो 'आवेदक' नहीं है (जैसा कि "अपने हाथों को बंद रखें, और जो आपको दिया गया है उस पर काम करें")? – Michael
आप सभी प्रकार के मामलों की कल्पना कर सकते हैं। उदाहरण के लिए, यदि आपके पास एक त्रुटि प्रकार था जिसे आप संसाधित करना चाहते थे लेकिन आप नहीं चाहते थे कि यह कोई भी नई त्रुटियां उत्पन्न करने में सक्षम हो या किसी भी त्रुटि का उपयोग न करें जो त्रुटि संदर्भ से नहीं है, तो आप अपनी त्रुटि प्रकार को प्राप्त करना चाहते हैं एक 'लागू करें' टाइपक्लास लेकिन 'आवेदक 'नहीं। –