2015-05-12 6 views
5

विभिन्न ओकंपल परियोजनाओं को देखते हुए, मुझे कभी भी इस्तेमाल की जाने वाली भाषा में built-in Streams दिखाई नहीं देता है। हाल ही में रियल वर्ल्ड ओकैम पुस्तक में, स्ट्रीम का बिल्कुल उल्लेख नहीं किया गया है, जो विषम है।क्या ओकंपल में धाराएं वास्तव में उपयोग की जाती हैं?

इसके लिए क्या कारण है? क्या ऐसा इसलिए है क्योंकि Lwt या Core उन्हें superseed?

+1

इस प्रश्न के लिए एक विनम्र व्यवसायी के लिए बहुत अधिक सर्वज्ञता की आवश्यकता है :-) मैंने छोटी परियोजनाओं में पहले धाराओं का उपयोग किया है; वे सुरुचिपूर्ण हैं। Lwt ऑर्थोगोनल लगता है; कोर में एक अच्छा स्ट्रीम कार्यान्वयन हो सकता है। –

+0

@GaintSquid यह स्पष्ट होना चाहिए कि आप एप्लिकेशन या स्ट्रीम की तलाश नहीं कर रहे हैं, बल्कि वे 'वास्तव में' क्यों नहीं उपयोग किए जाते हैं? अगर यह बाद वाला है तो मुझे नहीं पता क्यों, लेकिन अगर यह पूर्व है तो मैं जवाब दूंगा! – matrixanomaly

+0

@matrixanomaly यह सही है। लेकिन मुझे वास्तविक सॉफ्टवेयर में स्ट्रीम के अनुप्रयोगों को देखने में भी दिलचस्पी होगी। – GiantSquid

उत्तर

7

मुझे लगता है कि मैं this bug report में इस सवाल का बहुत अधिक जवाब देता हूं।

+0

यह वास्तव में बहुत कह रहा है।हालांकि वे ओकंपल में निर्भरताओं को खत्म करने के लिए इसे पुस्तकालय बनाने का प्रस्ताव करते हैं, है ना? – GiantSquid

+0

अनुरोध * बहिष्करण * के लिए है। हटाने नहीं यह काफी अलग है। किसी भी मामले में, हाँ, इसे कंपाइलर के बाहर रखा जाएगा (और उम्मीद है कि अब बेहतर पुस्तकालयों के पक्ष में उपयोग नहीं किया जाएगा)। – Drup

1

स्ट्रीम ओसीमल में 'आलसी मूल्यांकन' के लिए उपयोग किया जा सकता है, खासकर जब ओकैमल एक उत्सुक भाषा है, निश्चित रूप से उपयोगी मामले आलसी मूल्यांकन (जैसे हास्केल में) वांछित हैं।

का हवाला देते हुए एक lecture in Cornell on streams,

स्ट्रीम वास्तव में वास्तविक जीवन में उपयोगी होते हैं। कुछ अनुप्रयोग:

  • compilers पाठ से स्रोत फ़ाइल को पढ़ने
  • नेटवर्क सॉकेट
  • ऑडियो और वीडियो सिग्नल प्रोसेसिंग
  • आवाज की पहचान
  • समीकरण के समाधान का अनुमान करने संसृत श्रृंखला
का उपयोग कर

प्रदत्त संदर्भ पी की गणना करने के लिए धाराओं का भी उपयोग करता है आलसीस्टीनेस की चलनी का उपयोग करके बड़े प्राइम्स की गणना करने के सामान्य तरीके की तुलना में बहुत तेज है। तो मुझे लगता है कि धाराओं में निश्चित रूप से भाषा में उनकी जगह होती है क्योंकि यह ओकैमल में आलसी मूल्यांकन की अनुमति देता है।

स्ट्रीम मेरे प्रोफेसर द्वारा इस्तेमाल किया गया एक उत्सुक भाषा में आलसी मूल्यांकन की अवधारणा समझाने के लिए, कारण यह असली दुनिया OCaml में उल्लेख नहीं है है जो अपने आप भाषा के लिए उत्सुक है हो सकता है और धाराएं उस के साथ समानांतर नहीं हैं अवधारणा, और वह धाराएं mutli- threaded नहीं हो सकता है। (हालांकि, अटकलें हैं)

2

स्ट्रीम camlp4 वाक्यविन्यास समर्थन के साथ काफी अच्छे थे, इसके बिना वे शायद ही कभी उपयोग करने योग्य हैं। तो, यह कई समय पहले था (हालांकि यह अभी भी प्रयोग योग्य है, सैद्धांतिक रूप से)। ड्रूप के संदर्भ के अनुसार उन्हें कोर भाषा से निकट भविष्य (इस वर्ष) में भी हटा दिया जाएगा, और संभवतः, एक स्टैंडअलोन लाइब्रेरी में स्थानांतरित किया जाएगा।

यह सब कहना नहीं है कि डेटा संरचना के रूप में धाराओं में कुछ गड़बड़ है। यह अभी भी कई ओकैमल परियोजनाओं में उपयोग की जाने वाली एक बहुत ही मूल्यवान तकनीक है, वे इसे लागू करने वाले विभिन्न पुस्तकालयों का उपयोग करते हैं। कोर Sequence, बैटरी Enum, साइमन क्रूसेन्स के gen और sequence पैकेज, जोसेफ अब्राहमसन के fstream पैकेज कुछ नाम हैं।

+0

बस नाइटपिक करने के लिए, साइमन क्रूएन्स के पैकेज 'जीन' और 'अनुक्रम' हैं। ;) – Drup

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