स्पष्ट शब्दों में एपेरेटिव फ़ंक्टर को समझाते हुए - मोनोएडल फ़ंक्शंस


40

मैं Applicativeश्रेणी सिद्धांत के संदर्भ में समझना चाहूंगा ।

के लिए प्रलेखन का Applicativeकहना है कि यह एक मजबूत लक्ष्मण monoidal functor है

पहला, विकिपीडिया पृष्ठ मोनोइडल फ़ंक्शनलर्स के बारे में कहता है कि एक मोनोइडल फ़ंक्टर या तो ढीला या मजबूत है । इसलिए मुझे ऐसा लगता है कि या तो कोई एक स्रोत गलत है, या वे अलग-अलग शब्दों का उपयोग करते हैं। क्या कोई इसकी व्याख्या कर सकता है?

दूसरा, मोनोएडल श्रेणी कौन से Applicativeहैं जो मोनोएडल फ़ंक्शनलर्स हैं? मुझे लगता है कि फंक्शनलर्स स्टैंडर्ड हास्केल श्रेणी (ऑब्जेक्ट्स = प्रकार, आकारिकी = फ़ंक्शन) पर एंडो-फंक्शनलर्स हैं, लेकिन मुझे नहीं पता कि इस श्रेणी पर मोनोएडल संरचना क्या है।

मदद के लिए शुक्रिया।

जवाबों:


35

यहाँ वास्तव में "ताकत" शब्द के दो उपयोग हैं।

  • एक मजबूत एंडोफेनक्टर एक मोनॉयडल श्रेणी से अधिक सी एक है जो एक प्राकृतिक परिवर्तन साथ आता है , संतोषजनक सहयोगी के संबंध में कुछ सामंजस्य की स्थिति जो मैं खत्म कर दूंगा। इस स्थिति को कभी-कभी " की एक ताकत" भी कहा जाता है।F:CC(C,,I)σ:AF(B)F(AB)F

  • एक ढीला monoidal functor दो monoidal श्रेणियों के बीच एक functor है और प्राकृतिक परिवर्तनों के साथ और , फिर से सहयोगियों के संबंध में एक सुसंगत स्थिति को संतुष्ट करता है।F:CD(C,,I)(D,,J)ϕ:F(A)F(B)F(AB)i:JF(I)

  • एक मजबूत मोनोएडल फ़ंक्टर _ एक है जिसमें और प्राकृतिक समरूपताएं हैं। यही है, , with और इसके व्युत्क्रम में समरूपता का वर्णन है।F:CDϕiF(AB)F(A)F(B)ϕ

हास्केल कार्यक्रमों के अर्थ में, एक एपेक्टिव फ़ंक्टर, एक लाक्स मोनॉयडल एंडोफ़नक्टर है , जिसमें ताकत होती है , जिसमें कार्टेशियन उत्पाद होते हैं। तो यही कारण है कि आप विरोधाभासी लग रहा है शब्द "मजबूत लक्ष्मण monoidal functor"।

एक तरफ के रूप में, कार्टेशियन बंद श्रेणी में, की एक ताकत एक प्राकृतिक परिवर्तन के अस्तित्व के बराबर है । यही है, एक ताकत होने का मतलब है कि प्रोग्रामिंग भाषा में उच्च-क्रम फ़ंक्शन के रूप में फंक्शनल एक्शन निश्चित है।Fmap:(AB)(F(A)F(B))

अंत में, यदि आप हास्केल-शैली के आवेदक फंक्शनलर्स के प्रकार सिद्धांत में रुचि रखते हैं, तो मैंने इसके बारे में ब्लॉग किया है।


1
जवाब के लिए धन्यवाद। क्या मैं इसे सही ढंग से समझता हूं कि सभी उदाहरणों में Functorएक शक्ति (WRT उत्पाद) है, बस इसलिए कि वे fmapभाषा के अंदर उपयोग करने से परिभाषित होते हैं ? इसके अलावा, मुझे कौन सी पहेलियां हैं जो आपके ब्लॉग पोस्ट और विकिपीडिया लेख दोनों की तुलना में और की आपकी परिभाषा उलटी है - क्या यह एक टाइपो है? मैं परिभाषित करने की कोशिश की का उपयोग कर के रूप में , जो स्पष्ट रूप की जरूरत है । ϕipureipure' = \v -> fmap (\() -> v) (i ())i :: (Applicative f) => () -> f ()
पेट्र पुडलक

1
मेरे पास इस जवाब में एक टाइपो था - अब तय हो गया। और हां, सभी उदाहरण Functorमजबूत (wrt उत्पाद) हैं।
नील कृष्णस्वामी

क्या आप यह भी विस्तृत कर सकते हैं कि मोनाड कहाँ खड़ा है? अगर मैं सही समझूं तो यह एक मोनोएडल एंडोफ़नक्टर भी है।
एमिटमिट्री

@egdmitry Monoidal , नहीं monadal । इसका मतलब है कि हम एक मोनोएडल श्रेणी के एंडोफुन्क्टर (इस मामले में कार्टेसियन उत्पाद, यानी जोड़े के सापेक्ष एक मोनोइडल के साथ सौदा करते हैं । Hask
kirelagin

क्या मैं "मजबूत" के साथ संकेतन से बचने के लिए ताकतवर शब्द का उपयोग करने का प्रस्ताव कर सकता हूं ? यह एक स्कॉटिश (इसलिए विशेष रूप से यहां-वहां) "मजबूत" की द्वंद्वात्मक भिन्नता है, जिसका उपयोग पहली बार विक्लिफ की बाइबिल में किया गया था।
फॉस्को

3

आवेदक को समझने के लिए, जैसा कि एक सनक से प्रेरित है, मैं निम्नलिखित निर्माण को इंगित करना चाहता हूं:

योनेदा लेम्मा का तात्पर्य है कि और बीच एक समरूपता है । हास्केल प्रकारों की श्रेणी में, यह एक प्रकार का टाइप कर रहा है पर मूल्यांकन करना , फिर परिणामी फ़ंक्शन के लिए फंक्शनलर्स एरो मैप को लागू करना - यदि प्राकृतिक परिवर्तन के घटक तीर के रूप में समझ में आते हैं - और फिर से अमूर्त करते हुए, हम प्रकार का एक मानचित्रण प्राप्त करते हैं। Functor एक monadic 'में शामिल होने', मानचित्रण से के साथ आता है अब अगर के लिएFAnat(Hom(A,B),FB)

a(gF(g)(a))
FABAFB.
FAFA
FAFBAFFB.
FFBFB, और अगर हम लैम्ब्डा एब्स्ट्रक्शन के आस-पास स्विच करते हैं और इस तरह पहले दो तर्क स्लॉट्स हैं, तो हम लिए एक प्रकार का प्राप्त कर सकते हैं जिसे एक <*> द्वारा दर्शाया गया है। (यह वही है जो आपको हास्केल में माध्यम से मिलता है ।)
FBAFAFB,
LiftM2 id
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.