Control.Applicative
के लिये दस्तावेज को देखते हुए, मैं वे कुछ monads (जैसे IO
, Maybe
और विशेष रूप से ST
) के लिए उदाहरण घोषणाओं है कि नोटिस, लेकिन ऐसी State
और RWS
रूप MTL monads के लिए कोई उदाहरण नहीं है। इसके बजाए ऐसा लगता है कि एक सामान्य उद्देश्य WrappedMonad
प्रकार परिभाषित किया गया है, जिसका मैं अनुमान लगा रहा हूं कि अन्य सभी मामलों को कवर करना है।राज्य और अन्य एमटीएल monads के लिए आवेदक उदाहरण?
तो यहाँ मेरे सवालों हैं:
क्यों MTL monads के लिए
Applicative
उदाहरणों नहीं हैं? सबसे अच्छा जवाब मैं अब तक अपने आप को खोजने में सक्षम हूं three year old post, जहां किसी ने इन उदाहरणों को लागू किया और संक्षेप में अनदेखा किया गया।WrappedMonad
के साथ क्या सौदा है? मुझे post on Reddit मिला जो संक्षेप में बताता है, लेकिन मुझे लगता है कि मैं इसका उपयोग कैसे कर रहा हूं इसके बारे में उलझन में हूं।
अंत में मैं एक अनुप्रयोगी शैली में State
उपयोग करने के लिए सक्षम होने के लिए (के रूप में recommended to me था) चाहते हैं, लेकिन WrappedMonad
डेटा कंस्ट्रक्टर्स के साथ अपने कोड तो यह एक जीत की तरह प्रतीत नहीं होता है, तो मैं कूड़े के लिए है। मैं WrappedMonad
पूरी तरह से अनदेखा कर सकता हूं, और IO
, ST
और return
और ap
के संदर्भ में Applicative
उदाहरण स्वयं को उसी तरह से परिभाषित कर सकता हूं ... और यह भी मूर्खतापूर्ण लगता है।
अगर हमारे पास केवल फंक्टर => आवेदक => मोनाड, और (वैकल्पिक, मोनाड) => मोनाडप्लस – alternative