निरंतरता गुजर याद को बदलने (सीपीएस को बदलने) जो लेता है करने के लिए बीटा एक : = आर आर ए (जहां आर तय हो गई है) और च : एक → बी को बीटा च : बीटा एक → बीटा बी द्वारा परिभाषित बीटा वास्तव में हमारे पासइकाईसाथनिरंतरताहै।द्वारा परिभाषित है और गुणनकोद्वारा परिभाषित किया गया
अब हम कैसे हम एक बदल सकता है के बारे में सोचते हैं द्विआधारी नक्शा , यानी, हम चाहते हैं । एक तेज़ी से यह एक प्रोग्रामिंग दृष्टिकोण से भी समझ में आता है।γ च : बीटा एक → बीटा बी → बीटा सी γ
यहाँ मेरा सवाल है: क्या लिए एक गहरा कारण है , इस तथ्य के अलावा कि यह एक प्रोग्रामिंग दृष्टिकोण से सही लगता है? उदाहरण के लिए, क्या कोई श्रेणी-सिद्धांत या अन्य "सैद्धांतिक" कारण यह सोचने के लिए है कि समझ में आता है? उदाहरण के लिए, क्या हम मठ से व्यवस्थित तरीके से Gamma बना सकते हैं?γ γ
मैं का सीपीएस रूपांतरण में एक अंतर्दृष्टि रहा हूँ -ary कार्य करता है।
Applicative
। इसके पास liftA2
मेरा , hackage.haskell.org/packages/archive/base/4.2.0.0/doc/html/…-
liftA2
मैं जो सुझाव दे रहा था उसका एक हिस्सा था। "मुहावरा ब्रैकेट" धारणा (से (| f x y z ... |)
अनुवाद pure f <*> x <*> y <*> z <*> ...
) Applicative
आपके प्रश्न के एन-आर्य रूप को प्राप्त करने के लिए व्यवस्थित तरीके की तरह लगता है। मैं सीटी जानता हूं, लेकिन मानक प्रोग्रामिंग शब्दों में इसके बारे में बात करना सबसे सरल लग रहा था। यदि आप पहले नहीं आए थे Applicative
, तो आप लक्स मोनॉयडल फंक्शनलर्स को देखना चाह सकते हैं (हालाँकि हास्केल के इस बयान में <*>
एक्सपोनेंशियल भी शामिल है)। वैसे भी, मेरे पास आपके लिए कोई जवाब नहीं है, लेकिन आप जो कुछ भी हासिल कर रहे हैं, उसे बेहतर ढंग से समझने की कोशिश कर रहे हैं :)
liftM2
या सामान्यीकरण से परे कुछ खोज रहे हैंApplicative
? आप जो भी वर्णन करते हैं उसका एक एन-एरी संस्करण प्राप्त कर सकते हैं (एक भाषा में जो आपको एन-आर्य पॉलीमॉर्फिक फ़ंक्शन के बारे में बात करने देता है) निरंतरता से लागू होता है।