फ्लैटमैप के बारे में इतना शक्तिशाली क्या है कि यह स्कैला लोकगीत में ऐसी जगह का हकदार है?स्कैला में "फ्लैटमैप जो *** ***" idiomatic अभिव्यक्ति कहां से आती है?
उत्तर
इस वाक्यांश के पीछे तर्क यह है कि यदि आप फ्लैटमैप (और अन्य उच्च ऑर्डर फ़ंक्शंस) पर कॉल के साथ लिखेंगे तो आप बहुत कष्टप्रद प्रतिस्थापित कर सकते हैं।
इस विकल्प के लिए विशेष रूप से सच है (देखें http://tonymorris.github.io/blog/posts/scalaoption-cheat-sheet/)
लेकिन यह अन्य monads पर भी लागू होती
कल्पना कीजिए (हालांकि मैं स्वीकार करना होगा, मैं वास्तव में विवरण अभी तक अपने आप को समझ में नहीं आता) स्थिति जहां आपके पास एक संग्रह है जिसके लिए आप एक फ़ंक्शन (या फ़ंक्शन की श्रृंखला) लागू करना चाहते हैं, जहां प्रत्येक फ़ंक्शन शून्य हो सकता है। जब आप वास्तव में शून्य का उपयोग करते हैं तो कोड शून्य जांच के साथ riddled जाएगा। लेकिन यदि आप मूल्यों के बजाय विकल्प का उपयोग करते हैं, तो आप केवल वांछित कार्यों के साथ मूल्यों को फ्लैटमैप कर सकते हैं, कई कार्यों के मामले में फ़ंक्शंस को चेन कर सकते हैं और केवल उन परिणामों के साथ संग्रह प्राप्त कर सकते हैं जो शून्य नहीं हैं, जो कि कई मामलों में बिल्कुल ठीक है तुम्हें चाहिए।
चूंकि उस वर्णन को कम सलाह दी गई है, "केवल फ्लैटमैप उस छल" ने खुद को स्थापित किया है।
मैं संयोजनों से निपटने के लिए कभी-कभी सूची मोनड का उपयोग करता हूं। –
रूनर बजरनासन वह व्यक्ति है जिसे आप मूल के लिए ढूंढ रहे हैं।
यह समझना क्यों कि यह इतना शक्तिशाली है कि कुछ समय के साथ ईमानदार होने के लिए आ सकता है। ऑप्शन क्लास यह देखने के लिए शुरू करने के लिए सबसे अच्छी जगह है कि आप बार-बार कैसे फ्लैट करेंगे, लुकअप की एक श्रृंखला (उदाहरण के लिए) अंतिम परिणाम में मैप करें।
flatMap
के बारे में महत्वपूर्ण बात यह है कि यह स्काला का मोनैडिक बाइंड ऑपरेशन का प्रतिनिधित्व है। वेब पर मोनैड के उद्देश्य को समझाते हुए कई ट्यूटोरियल हैं और वास्तव में वे इतने उपयोगी क्यों हैं; James Iry has one जो कुछ विस्तार में जाता है।
मुझे लगता है कि यह सही जवाब है, 'विकल्प' कई' फ्लैटमैप 'उपयोग मामलों में से एक है। बेशक, यदि आप अपने "प्राकृतिक आवास" में मोनैड देखना चाहते हैं, तो आपको हास्केल की जांच करनी चाहिए। केवल अंतर यह है कि हास्केलर्स कहते हैं: "बस >> = वह बकवास!" – Landei
लेख के लिंक के लिए धन्यवाद, मुझे यह बहुत उपयोगी लगता है। मैं स्कैला में प्रोग्रामिंग में "अभिव्यक्तियों के लिए पुनरीक्षित" अध्याय में वापस गया, जो लूप के लिए कुछ प्रकाश डालता है और फ़िल्टर, मानचित्र, फ्लैटमैप और फ़्लैटन का उपयोग करता है। –
कहानी मैंने सुना था कि दो preeminent स्काला प्रोग्रामर थे युग्मन हो जब उनमें से एक इस तरह की कुछ कोड लिखना शुरू किया?
option match {
case Some ...
जो पर अन्य ने कहा, "क्या इस शौकिया घंटे की है इंगित फ्लैट नक्शा वह बकवास! "
flatMap
के बारे में इतना शक्तिशाली क्या है, ठीक है ... सबसे पहले, यह मौलिक monadic ऑपरेटर है। इसका मतलब है कि यह एक आम ऑपरेशन है, उदाहरण के लिए, कंटेनर (जैसे Option
, संग्रह, आदि), निरंतरता, राज्य इत्यादि। दूसरा, जबकि आप Option
का निर्माण कर सकते हैं, कि flatMap
के विपरीत, यह नहीं है एक monadic ऑपरेशन, तो यह व्यापक रूप से लागू नहीं किया जा सकता है। साथ ही, आपके द्वारा छेड़छाड़ किए जा रहे डेटा के बारे में बहुत अधिक जानकारी की आवश्यकता है।
नोट:। पहले मैंने कहा था मिलान धीमी गति से flatMap
- ठीक विपरीत स्थिति तथ्य की बात के रूप में, स्काला का नवीनतम संस्करण अप करने के लिए इस लेखन के समय में, है 2.10.1)
मुझे लगता है कि मैं अभी भी शौकिया घंटे में हूं :-) –
उन दो प्रोग्रामर स्वयं और पॉल चियसैनो थे। – Apocalisp
@Apocalisp मैंने यही सोचा, लेकिन मैं इसे किसी के लिए गलत-विशेषता नहीं देना चाहता था। –
- 1. शब्द विशेषता कहां से आती है?
- 2. संस्करण संख्या कहां से आती है?
- 3. फ़ाइल Microsoft.CompactFramework.VisualBasic.targets कहां से आती है?
- 4. सी # डीबीएमएल फ़ाइल कहां से आती है?
- 5. डब्ल्यूपीएफ कन्वर्टर्स: संस्कृति कहां से आती है
- 6. बूटस्ट्रैप ढांचे का "डेटा-टॉगल" विशेषता कहां से आती है?
- 7. हास्केल फ्लैटमैप
- 8. फ्लैटमैप के कार्यात्मक विपरीत?
- 9. idiomatic scala कोड
- 10. यह कहने के लिए सॉफ़्टवेयर लिख रहा है कि ध्वनि कहां से आती है (दिशात्मक सुनवाई)
- 11. टीएलबी याद आती है कैश याद आती है?
- 12. स्कैला XML.loadString बनाम शाब्दिक अभिव्यक्ति
- 13. स्कैला कंपाइलर स्टोर एएसटी कहां है?
- 14. Emacs में पाठ की Idiomatic बैच प्रसंस्करण?
- 15. Registry.CreateSubKey कब वापस आती है?
- 16. अस्तित्व के प्रकारों के लिए Idiomatic प्रतिस्थापन
- 17. एफ # और एडीओ.NET - idiomatic F #
- 18. एंड्रॉइड में त्रुटि क्यों नहीं आती है?
- 19. पार्सर जो स्कैला पहचानकर्ता स्वीकार करता है?
- 20. इंडेक्स तक पहुंचने से अनपॅकिंग तेजी से कैसे आती है?
- 21. साला के फ्लैटमैप के बराबर अमरूद क्या है?
- 22. स्कैला
- 23. लैम्ब्डा अभिव्यक्ति जो एक प्रतिनिधि
- 24. स्कैला म्यूटेबल बिटसेट, उत्परिवर्ती संचालन कहां हैं?
- 25. स्कैला
- 26. नेट लैम्ब्डा अभिव्यक्ति - यह पैरामीटर कहां से आया?
- 27. मैं कैसे बता सकता हूं कि पाइथन में आयातित लाइब्रेरी से कौन सी निर्देशिका आती है?
- 28. स्प्लिट एक (सरणी, जैसे, अभिव्यक्ति, सूची) में group_concat से ने MySQL स्ट्रिंग है जो में()
- 29. मैं जीन अभिव्यक्ति डेटा कहां डाउनलोड करूं?
- 30. मैं लैम्ब्डा अभिव्यक्ति async कहां चिह्नित करूं?
[उद्धरण वांछित] – tstenner
कंपाइलर भाषा संदर्भ में अभिव्यक्तियों के लिए 'कैसे संभालता है इस बारे में अनुभाग पढ़ें। यह कुछ संकेत दे सकता है। – Dirk
@tstenner: जब तक हम tese memes पर झुका रहे हैं: Google आपका मित्र है। – Chuck