2012-10-12 20 views
6

जैसा कि शीर्षक कहता है, मैं एक ऐसे कार्यक्रम की तलाश में हूं जो मोनाड के बड़े ढेर के साथ संयोजन में मोनैड ट्रांसफार्मर का उपयोग करता है।बड़े मोनाड स्टैक का उदाहरण

क्या कोई वास्तविक दुनिया का उदाहरण जानता है?

+0

"बड़ा" परिभाषित करें? –

+0

मुझे लगता है कि 3 पहले से ही "बड़ा ' – nponeccop

+0

अधिक बेहतर है। लेकिन> 3 एक अच्छी शुरुआत है। – nudded

उत्तर

8

एक अच्छा उदाहरण Haskeline है - अपने आंतरिक InputCmdT प्रकार गहराई 6 के एक इकाई ट्रांसफार्मर ढेर है (here देखें):

type InputCmdT m = StateT Layout (UndoT (StateT HistLog (ReaderT (IORef KillRing) 
       (ReaderT Prefs (ReaderT (Settings m) m))))) 

कौन वास्तव में इस तरह सिस्टम में एक प्रकार हस्ताक्षर उड़ाने के रूप में उत्सुक प्रभाव, हो सकता है। कंसोल। हास्कलाइन। कम से कम एक जीएचसी संस्करण के लिए 20,000 से अधिक लाइनों का उपयोग करता है ...

5

अगर यह रूप में "वास्तविक दुनिया" में गिना जाता है मैं नहीं जानता, लेकिन ट्यूटोरियल Write Yourself a Scheme in 48 Hours की मेरी विस्तार में मैं निम्नलिखित ढेर का उपयोग करता है एक प्रोग्रामिंग भाषा के लिए एक दुभाषिया कार्यान्वित:

type Eval a = ReaderT Environment (ErrorT LispError IO a) 

और मैं शुरू हो गया

type EvalCont r a = ContT r (ReaderT Environment (ErrorT LispError IO a)) 

मैं निरंतरता को लागू करने के लिए कभी नहीं परिभाषित करते हुए भाषा के लिए निरंतरता जोड़ने, लेकिन आप देख सकते हैं कि जहाँ तक मुझे checking it out on Github से मिला है।

संबंधित मुद्दे