यह बड़े डेटा के नजरिए से आता है। मूल रूप से, कई चौखटे (जैसे अपाचे स्पार्क) फनीक्टर / मोनाड-जैसे इंटरफेस प्रदान करके रिलेशनल ऑपरेशंस की कमी की "भरपाई" करते हैं और बिल्लियों-से-SQL रूपांतरण (स्लैक में स्लीक) के समान आंदोलन है। उदाहरण के लिए, हमें एसक्यूएल-परिप्रेक्ष्य से वैक्टर के तत्व-वार गुणन के लिए प्राकृतिक zip + map(multiply)
जुड़ाव (ElementwiseProduct
अनुक्रमित पर कोई पुनरावृत्ति नहीं मानने) की आवश्यकता होती है, जिसे श्रेणी थ्योरी के अनुप्रयोगों में (स्पार्क एमएलबी, हालांकि, पहले से ही ) माना जा सकता है ।
सीधे शब्दों में (निम्नलिखित उदाहरण स्काला में हैं):
जुड़ने के संदर्भित उप-भाग को आवेदक फ़ंक्टर (सॉर्ट किए गए संग्रह से अधिक) के रूप में माना जा सकता है, जो इसके बदले में हमें देता है
zip
:List(1,2,3).ap(List(2,4,8).map(a => (b: Int) => a * b))
->(List(1,2,3) zip List(2,4,8)).map(x => x._1 * x._2)
। इसके अलावा, हम कुछ प्रीप्रोसेसिंग (groupBy
ऑपरेटर या सिर्फ सरोगेसी, या आम तौर पर - एक एपिमोर्फिज्म) को मानते हुए इसे कुछ अन्य जॉइन के लिए प्रेरित कर सकते हैं ।अन्य योगों और चयन को मोनाड माना जा सकता है। उदाहरण के लिए,
WHERE
बस है:List(1,2,2,4).flatMap(x => if (x < 3) List(x) else List.empty)
->List(1,2,2,4).filter(_ < 3)
डेटा स्वयं ADT (GADT भी है?), जो अपनी बारी में एक साधारण सेट-श्रेणी (या आमतौर पर बोलने वाला - कार्टेशियन-बंद) की तरह दिखता है, इसलिए इसे सेट-आधारित संचालन (करी के कारण) को कवर करना चाहिए (मुझे लगता है) हॉवर्ड-लैंबेक ही) और जैसे ऑपरेशन
RENAME
(कम से कम अभ्यास में)।एकत्रीकरण
fold/reduce
(कायापलट) से मेल खाता है
इसलिए, मैं जो पूछ रहा हूं, क्या हम श्रेणी सिद्धांत (और पूरे) रिलेशनल बीजगणित के बीच (शायद सबसेट) के बीच एक समरूपता का निर्माण कर सकते हैं या कुछ खुला है? यदि यह काम करता है, तो श्रेणियों का "सबसेट" क्या है, जो रिलेजेब्रा के लिए आइसोमॉर्फिक है?
आप देख सकते हैं कि लॉरी-कैट-लैंबडा के लिए करी-हावर्ड-लामेक पत्राचार जैसे औपचारिक समाधानों के दौरान मेरी अपनी धारणा काफी व्यापक है - इसलिए वास्तव में, मैं एक कुशल अध्ययन के संदर्भ के लिए पूछ रहा हूं (जो एक सीधा संबंध दिखाता है ) स्काला / हास्केल में अधिक उदाहरणों के साथ।
संपादित करें : स्वीकार किए गए उत्तर ने मुझे यह सोचने पर मजबूर कर दिया कि मैं एक मोनाड के रूप में जॉइन और शर्तों का प्रतिनिधित्व करने के लिए बहुत दूर चला गया था (विशेष रूप से एक खाली मूल्य का उपयोग करके जो प्रभावी रूप से एफएएलएसई को त्वरित करता है), मुझे लगता है कि कम से कम एसक्यूएल के रिलैजेब्रा सबसेट के लिए कम से कम पर्याप्त होना चाहिए। ग्रुप बीवाई जैसे उच्च ऑर्डर (नेस्टिंग) सामान के लिए मोनाड बेहतर होते हैं, जो कि रिलेजेब्रा का हिस्सा नहीं है।