मैं कुछ इनपुट डेटा प्रकार से एक आउटपुट डेटा प्रकार में स्ट्रीम ट्रांसफॉर्मर लिख रहा हूं। इनपुट उपयोगकर्ता द्वारा किया जाता है, इसलिए घटनाओं के बीच कुछ समय होता है। चूंकि प्रत्येक इनपुट को कुछ संसाधन लोडिंग की आवश्यकता होती है, इसलिए मैं "भविष्य में देखना" चाहता हूं, यानी परिणाम के आधार पर मुख्य गणना और प्रीलोड संसाधनों के लिए सभी संभावित इनपुट भेजें।क्या मोनैड हैं जिन्हें एक automaton की तरह इस्तेमाल किया जा सकता है?
वर्तमान में, प्रत्येक इनपुट के बाद हमेशा एक आउटपुट होता है लेकिन यह अंततः इसे बदलने के लिए दिलचस्प हो सकता है।
मैं रॉस पैटरसन द्वारा ऑटोमैटॉन ट्रांसफार्मर के साथ इसे लागू करने में सफल रहा। मुझे यकीन नहीं है कि मेरा समाधान इष्टतम है।
- क्या अच्छे उदाहरण हैं यह कैसे करें? शायद टेस्ट कोड के साथ भी?
- क्या यह एक मोनड के साथ भी हासिल किया जा सकता है? (उदाहरण ?, स्पष्टीकरण क्यों असंभव है?)
संपादित करें: अधिक विशिष्टताओं के लिए कॉल के बाद, मैंने यहां कोड जोड़ा। अब मैं इसे हटा रहा हूं (यह समझ में नहीं आया) और कुछ अन्य स्पष्टीकरण जोड़ें। मेरा सवाल जवाब दिया गया है।
मेरा इरादा तीर/स्ट्रीम ट्रांसफॉर्मर/जो कुछ भी खिलाया गया है, उसके बाद प्रत्येक उपयोगकर्ता इनपुट के बाद मुख्य ईवेंट लूप स्टॉप होना था। फिर यह वर्तमान automaton स्थिति को संग्रहीत करेगा और सभी संभावित इनपुट (नकली घटनाओं) को एक-एक करके automaton पर भेज देगा और देखें कि उन्हें कैश करने के लिए संसाधनों को लोड किया जाना चाहिए। अगली असली घटना के बाद, यह बेहतर प्रतिक्रिया के लिए कैश का उपयोग करेगा। मुख्य गणना इस से प्रभावित नहीं होनी चाहिए।
उत्तर देने के लिए योग्य नहीं है, लेकिन यह आपके लिए उपयोगी हो सकता है। इस लाइब्रेरी को देखें: http://hackage.haskell.org/package/enumerator ... लेकिन तीर एक अच्छा अमूर्त प्रतीत होता है। मैं शर्त लगाऊंगा कि अधिक विशिष्टता लोगों को जवाब देने में मदद करेगी। अधिक विशिष्टताओं पर – jberryman
+1। – sclv