की खोज में एक सूची के माध्यम से फ़ंक्शन को कार्यान्वित करना मुझे एरलांग में कोडिंग समस्या मिली है जो शायद एक सामान्य डिज़ाइन पैटर्न है, लेकिन मुझे इसे हल करने के तरीके पर कोई जानकारी नहीं मिल रही है।डिजाइन पैटर्न? पहले {सफलता} परिणाम
मुझे एक सूची मिली है। मैं एल में प्रत्येक तत्व के लिए एक फ़ंक्शन एफ लागू करना चाहता हूं, और यह एल में सभी तत्वों में एक साथ चल रहा है। एफ (एलिमेंट) के लिए प्रत्येक कॉल या तो सफल या असफल हो जाएगी; अधिकांश मामलों में यह असफल हो जायेगी, लेकिन कभी-कभी यह एल
के भीतर एक विशिष्ट तत्व के लिए सफल होगा/जब वायुसेना (तत्व) सफल होता है, मैं "सफलता" लौटाना चाहते हैं और के लिए च के सभी आमंत्रण समाप्त एल में अन्य तत्वों - पहली "सफलता" सभी मैं में दिलचस्पी रखता हूँ है दूसरी ओर, यदि च (तत्व) एल में प्रत्येक तत्व के लिए विफल रहता है, तो मैं वापस जाने के लिए चाहते हैं "असफल"।।
एक मामूली उदाहरण के रूप में, मान लें कि एल पूर्णांक की एक सूची है, और एफ रिटर्न {सफलता} अगर एल में कोई तत्व 3 है, या किसी अन्य मान के लिए {विफल} है। यदि एल में कोई 3 एस है तो मैं जितनी जल्दी हो सके खोजना चाहता हूं; मुझे परवाह नहीं है देखते हैं कितने 3s, कम से कम एक 3 से मौजूद है या नहीं, या नहीं। च ऐसा दिखाई दे सकता:
f(Int) ->
case Int of
3 -> {success};
_ -> {fail}
end.
मैं Ints की एक सूची के माध्यम से कैसे पुनरावृति पता करें कि सूची कम से कम एक 3, शामिल हैं और जितनी जल्दी वापसी संभव के रूप में करने के लिए कर सकते हैं?
निश्चित रूप से यह एक आम कार्यात्मक डिजाइन पैटर्न है, और मैं सिर्फ गूगल के भीतर सही खोज शब्दों का उपयोग नहीं कर रहा हूँ ...
के लिए धन्यवाद आप यह महसूस करके अनुकूलित कर सकते हैं कि 'wait_for_result/2' में हम वास्तव में रुचि नहीं रखते हैं कि कौन सा कार्यकर्ता' झूठा 'लौटाता है, बस कितने लोगों ने ऐसा किया है। तो यह हर बार सूची के पहले तत्व को हटाने के लिए पर्याप्त है। – rvirding
आपको यह भी उल्लेख करना चाहिए कि 'निकास (have_result) 'सभी शेष कार्यकर्ता प्रक्रियाओं को मार डालेगा क्योंकि वे जुड़े हुए हैं (' spawn_link' से शुरू) और' have_result' सामान्य नहीं है इसलिए इसे त्रुटि निकास के रूप में माना जाता है। – rvirding
आप निश्चित रूप से सही हैं। आपकी टिप्पणियों के साथ उत्तर अपडेट किया गया। –