मैंने हाल ही में ब्लॉग पोस्ट में transformers
लिखा था, और किसी ने पूछा "लोग Control.Applicative.Lift का उपयोग किसके लिए करते हैं?" मैं इसका उत्तर देने में सक्षम नहीं था, इसलिए मैं स्टैक ओवरफ्लो को प्रश्न गूंजता हूं - Control.Applicative.Lift
के लिए उपयोग किया जाता है?नियंत्रण क्या है। आवेदन। लिफ्ट के लिए उपयोगी है?
मुझे पैकेज में इसका एक उदाहरण उपयोग दिखाई देता है, लेकिन ऐसा लगता है कि यह पूरी तरह से पार्स करने में सक्षम नहीं है। क्या किसी को जंगली में किसी अन्य उदाहरण को पता है?
data Lift f a = Pure a | Other (f a)
है यही कारण है, एक functor f
दिया, आप एक शुद्ध मूल्य के साथ f
रचना करके एक नया functor प्राप्त कर सकते हैं:
यह मुझे एक अर्धचुंबक को एक मोनोइड में विस्तारित करने की याद दिलाता है: यह एक आवेदक-मज़ेदार-लेकिन-बिना शुद्ध आवेदक फिक्सर में फैलाता है। और यह दोनों मामलों में obfuscated है क्योंकि semigroups/आवेदक-functors- लेकिन बिना शुद्ध शुद्ध मानक पुस्तकालय में मौजूद नहीं हैं। – dave4420
यदि आपके पास कोई आवेदक होमोमोर्फिज्म 'fug :: fu -> gu' है, तो '(f: +: g)' (जहां ': +:' pointwise sum है) आवेदक बनाया जा सकता है "जब तक आप फगिंग नहीं करते हैं तब तक बाएं रखना सही जाने के लिए "। लिफ्ट एक विशेष मामला है जहां 'एफ' प्रारंभिक आवेदक है, यानी पहचान, जिसमें से किसी अन्य के लिए एक अद्वितीय होमोमोर्फिज्म है। – pigworker
इसे @ पिगवर्कर की टिप्पणी के विश्लेषण का एक उचित हिस्सा लिया गया है - लेकिन http://comonad.com/reader/2012/abstracting-with-applicatives/comment-page-1/#comment-107128 पढ़ने के बाद मैं अंततः इसे (और इसके लिए तत्काल उपयोग करें!)। धन्यवाद! – ocharles