यह भावना एकाधिक flatMap
(या >>=
/हास्केल में bind
) एक इकाई में तरीकों को परिभाषित करने को करता है? बहुत कुछ monads मैं वास्तव में (Option
, Try
, Either
अनुमानों) का उपयोग केवल एक flatMap विधि परिभाषित करते हैं।एक मोनैड के लिए एकाधिक फ्लैटमैप विधियां?
उदाहरण के लिए, पर flatMap
विधि को परिभाषित करने के लिए यह समझ में आता है जो Try
का निर्माण करने वाला एक कार्य करेगा? तो Option[Try[User]]
उदाहरण के लिए Option[User]
के रूप में फ़्लैट किया जाएगा? (अपवाद को खोने पर विचार करना कोई समस्या नहीं है ...)
या एक मोनड को एक flatMap
विधि को परिभाषित करना चाहिए, जो एक ही प्रकार का मोनड उत्पन्न करता है? मुझे लगता है कि इस मामले में Either
अनुमान मोनैड नहीं होंगे? क्या वो?
@ ओम-nom-nom और: यह पता चला है के रूप में, इस तरह के एक निर्माण (सभी monadic क्षमताओं को खोने के अलावा) नहीं वाकई दिलचस्प है, क्योंकि यह बाहरी कंटेनर के लिए भीतरी से एक रूपांतरण प्रदान करने के लिए पर्याप्त है सूची तब एक मोनाड है? जिस तरह से मैं यह नहीं ढूंढ सकता कि यह 'सूची [विकल्प [_]]' के लिए कैसे काम करता है क्योंकि विकल्प एक GenTraversableOnce –
'या तो' इसके प्रकार के चर दोनों पर एक मोनड नहीं है। क्या आप यही पूछ रहे हैं? –