functional programming - Associative binary operation for Option in Scala -
मुझे याद है कि यदि ऊपर सही है, तो स्कैला में ( इस उत्तर से इसकी परिभाषा चुरा ली गई है और केवल किसी न किसी प्रकार का स्पष्टीकरण देने की कोशिश करता है। श्रेणी सिद्धांत का मेरा ज्ञान बल्कि मूल है। ) T = & gt; विकल्प [टी] ) मानते हैं और नहीं मान (जैसे। < कोड> कुछ (3) या मानों पर एक मोनोइड के लिए एक उदाहरण के रूप में, सूची [टी] । हमारे पास एक द्विआधारी ऑपरेशन है एक ?? ¢: एस à ?? एस - & gt; एस : और खाली सूची अब, उपरोक्त मामले में एक ?? को इनपुट मानों के ट्यूपल को लौटने के रूप में देखा जा सकता है : <पूर्व> और हमारा हालांकि, हम एक ?? को एक ???? में ट्यूप्लिंग ऑपरेशन को बदल सकता है, अब फ़ैक्टिका संरचना का अर्थ हो सकता है। और इसलिए, हम एक समारोह को पूरा करने के लिए देख रहे हैं μ: टी â ???? टी - & gt; टी या अधिक विशिष्ट यह ऑपरेशन Scala में चीजों को लपेटने के लिए, इस प्रश्न के उत्तर और अन्य उत्तरों पर विचार करने के लिए तीन संभावनाएं हैं कि कैसे एक मोनॉड एक मोनोइड हो सकता है: ए) प्रत्येक मोनद भी उपर्युक्त में मोनैक्टर रचना के तहत एक मोनोइड है। बी) हर मोनद सी) कुछ मोनादों में एक या अधिक विशिष्ट मोनोइड्स हो सकते हैं जो बी में से अलग है। उदाहरण मोनाद एक
मोनोइड है यही है, एक सहस्राब्दी बाइनरी ऑपरेशन
* है, इसलिए यदि
ma और
mb है monadic मान तब
मा * mb भी एक मौद्रिक मूल्य है
ऑप्शन के लिए बाइनरी ऑपरेशन क्या है? उदाहरण के लिए,
* में
कुछ (1) * कुछ (2)
कोई नहीं )।
डीईएफ़ एपीएनडी [टी] (सूची 1: सूची [टी], सूची 2: सूची [टी]): सूची [टी] = सूची 1 ऐप लिस्ट 2
शून्य जाहिर पहचान तत्व है हालांकि हर मोनद में कोई
अनुलग्नक नहीं है, इसलिए उपरोक्त सभी मोनादों पर सामान्यीकृत नहीं किया जा सकता है। चलिए, द्विआधारी संचालन की परिभाषा को थोड़ा सा बदलते हैं।
सूची [टी] एक ?? सूची [टी] = & gt; (सूची [टी], सूची [टी])
अनुलग्न करें फ़ंक्शन इस इनपुट के रूप में इस टपल को प्राप्त करता है।
(K = & gt; सूची [के]) एक ???? (कश्मीर = & gt; सूची [के]) = & gt; (कश्मीर = & gt; सूची [सूची [के]])
(के = & gt; सूची [सूची [के]]) = & gt; (कश्मीर = & gt; सूची [के])
flatten (
join हास्केल में) के रूप में जाना जाता है। मोनोइड का पहचान तत्व मोनड कन्स्ट्रक्टर है, जिसका स्कैला (
वापसी हास्केल में) में कोई सामान्य नाम नहीं है, लेकिन हर मोनद के लिए मौजूद है। उदाहरण के लिए।
x = & gt; सूची (एक्स) ।
एम [टी] एक मोनोइड है, अगर एक मोनोइड भी है टी के लिए कुछ बाइनरी ऑपरेशन
~ + ~ ):
के लिए {x & lt; - ma; Y & lt; - mb} उपज x ~ + ~ y
सूची एक ऐप या
विकल्प एस
orElse ।
Comments
Post a Comment