मान लीजिए कि मेरे पास एक ईवेंट ट्रिगर है जिसे मैं निकालकर दो चीजें करना चाहता हूं। सबसे पहले, मैं इसे व्यवहार के मान को अपडेट करना चाहता हूं। दूसरा, यदि अन्य स्थितियों को पूरा किया जाता है, तो मैं इसे व्यवहार के मूल्य के साथ send_off पर आग लगाना चाहता हूं। कोड रूप में व्यक्त किया, मैंप्रतिक्रियाशील-केला: एक व्यवहार के सबसे अद्यतित मूल्य वाले फायरिंग ईवेंट
trigger :: Event b
trigger = ...
updateFromTrigger :: b -> (a -> a)
updateFromTrigger = ...
conditionFromTrigger :: b -> Bool
conditionFromTrigger = ...
behavior :: Behavior a
behavior = accumB initial_value (updateFromTrigger <$> trigger)
send_off :: Event a
send_off = ?????? (filterE conditionFromTrigger trigger)
है तो फिर सवाल यह है कि लगता है: क्या मैं में डाल दिया है ?????? ताकि send_offव्यवहार का सबसे अद्यतित मूल्य भेजता है, जिसके द्वारा मेरा मतलब है कि से अद्यतन को शामिल करने वाला मान ट्रिगर है जो इसे अभी लागू किया गया था।
दुर्भाग्यवश, यदि मैं सही ढंग से समझता हूं, तो व्यवहार का अर्थशास्त्र ऐसा है कि अद्यतन मूल्य तुरंत मेरे लिए उपलब्ध नहीं है, इसलिए मेरा एकमात्र विकल्प काम को डुप्लिकेट करने और व्यवहार के अद्यतन मूल्य को फिर से लागू करने के लिए अनिवार्य रूप से है। इसे किसी अन्य घटना में तुरंत उपयोग कर सकते हैं, यानी ??????
send_off =
flip updateFromTrigger
<$>
behavior
<@>
filterE conditionFromTrigger trigger
अब की तरह कुछ के साथ, वहाँ एक भावना है, जिसमें मैं व्यवहार में अद्यतन जानकारी मेरे पास उपलब्ध तुरंत एक व्यवहार के बजाय एक असतत का उपयोग करके कर सकते हैं, लेकिन वास्तव में यह सिर्फ के बराबर है मुझे एक ऐसा कार्यक्रम दे रहा है जो अद्यतन मूल्य के साथ मेरे मूल कार्यक्रम के साथ एक साथ निकाल दिया गया है, और जब तक कि मुझे कुछ प्रतिक्रियाशील-केला नहीं मिला है, तब तक मुझे एक घटना को आग लगाने का कोई तरीका नहीं मिलता है जब दो अन्य घटनाओं ने एक साथ निकाल दिया है; यानी, यह घटनाओं के संघों को प्रदान करता है लेकिन चौराहे नहीं।
तो मेरे पास दो प्रश्न हैं। सबसे पहले, क्या इस स्थिति की मेरी समझ सही है, और विशेष रूप से मैं निष्कर्ष में सही हूं कि मेरा समाधान उपरोक्त काम करने का एकमात्र तरीका है? दूसरा, जिज्ञासा से पूरी तरह से, डेवलपर्स द्वारा घटनाओं के चौराहे से निपटने के तरीके पर कोई विचार या योजना रही है?
किसी भी भावना का जब हम अपडेट की उम्मीद कर सकते हैं? :-) –
@ ग्रेगरी क्रॉसवाइट: आप अच्छे प्रश्न पूछते रहते हैं। ;-) मैंने नए आंतरिक के लिए एक सुंदर डिजाइन सोचा है, लेकिन इसे लागू करने में कुछ समय लगेगा। –