मूल रूप से अलग-अलग पुश-पुल और एरिकाइज्ड एफआरपी कितने हैं?


264

मैं हास्केल में एफआरपी का अध्ययन करना चाहता हूं, लेकिन इसका उपयोग करने के लिए पुस्तकालय पर निर्णय लेना थोड़ा मुश्किल है। कई मृत प्रयास लगते हैं, कुछ को पुनर्जीवित किया गया लगता है (जैसे कि यमपा पर हाल की गतिविधि)।

मैंने जो पढ़ा है, उससे ऐसा लगता है कि FRP के दो "प्रकार" हैं: एक तरफ पुश-पुल FRP (जैसे रिएक्टिव-केला) और दूसरी तरफ FRP (जैसे यंपा में) को तीर दिया। ऐसा लगता है कि फ्रैंक और फ्रॉम टाइम के समय कुछ "क्लासिक FRP" भी हुआ करते थे, लेकिन मैंने इनमें हाल की किसी भी गतिविधि को नहीं देखा है।

  • क्या ये दोनों (या तीन) वास्तव में FRP के मूलभूत रूप से भिन्न दृष्टिकोण हैं?

  • क्या उनमें से एक पुराना सिद्धांत है जबकि दूसरा "भविष्य का सामान" होगा?

  • या क्या उन्हें विभिन्न उद्देश्यों को संबोधित करते हुए समानांतर में विकसित होना है?

  • क्या मैंने प्रत्येक श्रेणी के सबसे प्रमुख पुस्तकालय का नाम दिया है, या विचार करने के लिए अन्य विकल्प हैं (सोडियम, नेटवायर, एट अल)?


मैंने आखिरकार जे अब्राहमसन की टिप्पणियों में अनुशंसित इवान कजप्लेकी की बात को देखा । यह बहुत दिलचस्प है और मेरे लिए चीजों को स्पष्ट करने में मदद करता है। मैं इसे किसी को भी सुझाता हूं जिसने इस प्रश्न को दिलचस्प पाया।


5
आपको ertes '(netwire लेखक की) राय में रुचि हो सकती है: stackoverflow.com/a/13344292/414413
Cirdec

14
वास्तव में जल्दी: reactive-bananaनिश्चित रूप से पुल-आधारित नहीं पुश-पुल है। reactiveपुश-पुल है। Yampaऔर netwireतीर हैं। एफआरपी हैं जो "संचय मूल्यों" की अनुमति देते हैं, लेकिन "स्विचिंग" की अनुमति नहीं देते हैं, एफआरपी जो "स्विचिंग" की अनुमति देते हैं लेकिन "संचय मूल्यों" की अनुमति नहीं देते हैं। वे दोनों "सरल" एफआरपी हैं। उन्नत FRP स्विचिंग और संचय की अनुमति देता है और उन विशेषताओं के संयोजन के खतरे को नियंत्रित करने के लिए तीरों का उपयोग करता है। Monadic FRP जैसे reactive-banana, sodiumऔर elereaयह सुनिश्चित करने के लिए अन्य सावधान तंत्र का उपयोग करें कि स्विचिंग और संचय बहुत अधिक बातचीत न करें।
जे। अब्राहमसन

12
एरोइज्ड एफआरपी में भी साफ-सुथरी विशेषता है कि सिग्नल हमेशा उनके इनपुट के संदर्भ में बताए जाते हैं जो आपको आउटपुट को सह-रूप से परिवर्तित करने की सुविधा देता है और इंटरएक्टिव एफआरपी को बेहतर ढंग से अनुकरण करने के लिए इनपुट आकस्मिक रूप से होता है। उस सुविधा के एक महान उदाहरण के लिए कोर्टनी और इलियट द्वारा वास्तव में कार्यात्मक उपयोगकर्ता इंटरफेस देखें।
जे। अब्राहमसन 20

9
एल्म लेखक इवान कजप्लेकी की " कंटोलिंग टाइम एंड स्पेस" में भी आपकी रुचि हो सकती है । मेरी राय में वह FRP डिज़ाइन स्पेस और इसमें शामिल समझौतों पर एक अच्छा उच्च स्तरीय अवलोकन देने का प्रबंधन करता है।
डैनियल

3
मुझे लगता है कि आपको यहाँ अपना उत्तर मिल जाएगा .. stackoverflow.com/questions/10000074/…
रुषभ शाह

जवाबों:


17

मैंने आपके प्रश्न की जांच करने के लिए Haskell.org की यात्रा की। मैंने पाया कि आपके शोध को आगे बढ़ाने के लिए आपके द्वारा पढ़े जाने वाले दो महत्वपूर्ण प्रश्नपत्र हैं, और मैं इन विद्वानों के पत्रों से आपके प्रश्न के उत्तर का निर्माण कर रहा हूं।

कॉनल इलियट द्वारा पुश-पुल एफआरपी

जॉन ह्यूजेस द्वारा तीर को सामान्य बनाना


  1. हां, लेकिन यह भी नहीं। इलियट के अनुसार, पुश डेटा संचालित एफआरपी मूल्यांकन है और पुल का संबंध "मांग" संचालित मूल्यांकन से है। लेखक पुल की सिफारिश करता है क्योंकि पुश डेटा इनपुट के बीच निष्क्रिय हो जाता है। यहां क्रूक्स है: पुश-पुल कॉम्बिनेशन और इन व्यवहारों को संतुलित करता है ताकि मूल्यों को फिर से स्थापित करने की आवश्यकता को कम से कम किया जा सके। यह आसान है; पुश-पुल के साथ एफआरपी का संचालन प्रतिक्रिया करने की क्षमता को तेज करता है। मूल्यों को जोड़ने और उन्हें एक साथ मूल्यांकन करने के लिए अमूर्त प्रकारों का उपयोग करने के लिए एरो एक अलग तकनीक है। ये सभी अवधारणाएँ मौलिक रूप से भिन्न हैं। लेकिन इसके लिए मेरा शब्द न लें:

    एरो इंटरफ़ेस की प्रकृति न्यूनतम पुनर्मूल्यांकन के लक्ष्य के लिए समस्याग्रस्त है। इनपुट घटनाओं और व्यवहारों को एक एकल इनपुट में मिला दिया जाता है, जो तब बदल जाता है जब भी कोई घटक बदलता है, (इलियट)।

    इस प्रकार, एरो पुश-पुल के लक्ष्य का खंडन करता है। इसका मतलब यह नहीं है कि आप एक बार में इन सभी का उपयोग नहीं कर सकते हैं, बस यह जटिल होगा, और कुछ चीजें हैं जो आप सार तीर प्रकार के बिना गणना नहीं कर सकते हैं।

  2. मुझे विद्वानों की राय नहीं मिली है जिस पर दृष्टिकोण "भविष्य का रास्ता" है। केवल ध्यान दें कि तीर विशेष रूप से अच्छी तरह से एक साथ संभाल सकते हैं। यदि आप तीर को कार्यान्वित कर सकते हैं और गणना को कम करने के लिए पुश-पुल का उपयोग कर सकते हैं, तो यह भविष्य का तरीका होगा।

  3. हां, वे अलग-अलग उद्देश्यों को संबोधित करते हैं। जैसा कि मैंने कहा, उन्हें एक साथ तैयार किया जा सकता है लेकिन इसे लागू करना मुश्किल है और यहां तक ​​कि अगर यह काम करता है, तो यह संभवतः पुश-पुल के प्रतिक्रियाशील गति लाभों को नकार देगा।

  4. यह व्यक्तिपरक है, लेकिन प्रतिक्रियाशील और यंपा एफआरपी के लिए सबसे अधिक उद्धृत भाषा पुस्तकालय हैं। मैं कहूंगा कि कॉनल इलियट द्वारा प्रतिक्रियाशील गहरी जड़ें हैं, और यंपा भी स्थापित है। नेटवायर जैसी अन्य परियोजनाएं प्रतिस्थापन के रूप में उत्पन्न हुईं, लेकिन दिग्गजों को बदलने से पहले कुछ समय हो सकता है।


उम्मीद है की यह मदद करेगा! जैसे मैंने कहा कि मैंने जिन लेखों को पढ़ा है, वे आपको तीर, धक्का और खींच के बीच अर्थ की दूरी का एक बेहतर अर्थ देंगे।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.