मैंने कहा देखा है किलिस्टटी मोनैड ट्रांसफार्मर क्यों बग्गी माना जाता है - यह किस मोनैड कानूनों को तोड़ता है?
ListT
एक गाड़ी इकाई ट्रांसफार्मर कि monad laws संतुष्ट नहीं करता का एक उत्कृष्ट उदाहरण है।
क्या यह एक साधारण उदाहरण द्वारा प्रदर्शित किया जा सकता है?
संपादित करें:ListT []
साथ मेरा विचार एक सा गलत है, मैं याद किया कि documentation विनिमेय होने की भीतरी इकाई की आवश्यकता है। तो, ListT
बग्गी सिर्फ इस अर्थ में है कि इस आवश्यकता है, या कोई और समस्या है? (examples at Haskell wiki सभी ListT IO
का उपयोग करें और IO
स्पष्ट रूप से विनिमेय नहीं है।)
प्रलेखन का कहना है कि परिवर्तित मोनड कम्यूटिव होना चाहिए; उदाहरण के साथ इसे आज़माएं 'v n = ListT $ map (पढ़ें :: स्ट्रिंग -> Int)। क्रमपरिवर्तन प्रदर्शन । (+ एन) ' – applicative
@ एप्प्लिकेटिव गुड प्वाइंट, मुझे याद आया। मैंने '(->) 'monad के साथ प्रयास किया, लेकिन अब तक मुझे काउंटर-उदाहरण नहीं मिला। –
खैर ... उन्हें "मोनैड ट्रांसफार्मर" कहा जाता है, न कि "कम्यूटिव मोनड ट्रांसफार्मर"। अगर मैंने एक ट्रांसफॉर्मर को परिभाषित किया है जो कुछ विशिष्ट मोनैड पर लागू होने पर सही ढंग से काम करता है, तो क्या कोई इसे संतोषजनक मानता है? –