मैं एक monadic देखने योग्य/प्रतिक्रियाशील पार्सर परिभाषित कर रहा हूँ। यह एक सामान्य पार्सर के लिए काफी अलग व्यवहार करता है क्योंकि यह एक सतत क्वेरी है। अंतर्निहित प्रकार है:एक मामले का भेदभाव संघ
IObservable<'a> -> IObservable<'b>
कार्यात्मक भाषाओं में विभिन्न पार्सर कार्यान्वयन को देखकर से ऐसा प्रतीत होता है जैसे कि चीजों को परिभाषित करने के लिए और अधिक उचित तरीके से एक ही मामला भेदभाव संघ है:
type Pattern<'a,'b> = Pattern of (IObservable<'a> -> IObservable<'b>)
कौन सा मैं मतलब है तो इसका इस्तेमाल करने के लिए अंतर्निहित समारोह को निकालने के लिए की जरूरत है:
let find (Pattern p) = p
सवाल है: यह सिर्फ प्रथा के अनुसार, या बाद में विस्तार के प्रयोजनों के लिए, या है परिभाषा कभी नहीं बदलती है, भले ही ऐसा करने का कोई कारण हो?
बोनस सवाल:
type Pattern<'a,'b> = IObservable<'a> -> IObservable<'b>
मैं इस के माध्यम से काफी एक तरह से उन्नत है, और एक मामले में जहां नहीं मिला है: अगर यह सिर्फ एक और अधिक सुविधाजनक प्रकार हस्ताक्षर के लिए है, क्यों नहीं बस एक प्रकार अन्य नाम का उपयोग डीयू का उपयोग न करने से संगतता प्रभावित होती है।
धन्यवाद, यह वास्तव में एक सुंदर ठोस कारण है। निश्चित रूप से 'पैटर्न <'a,'b>' के बजाय 'IObservable <'a> -> IObservable <'b>' टाइपिंग नहीं करना चाहते हैं। – yamen
बाद में कई चंद्रमाओं का पालन करें। मैंने संघ में दूसरा मामला जोड़ दिया, और इस प्रकार ब्रह्मांड संतुलन में है। – yamen