2011-01-13 14 views
5

में अभिनेता स्कैला में एक उपयोगिता लिख ​​रहा हूं जिसमें "फ़ाइल कॉपी" अभिनेता शामिल है। मैं प्रतिलिपि बनाने के लिए फ़ाइल नाम भेजता हूं और अभिनेता उन्हें एक समय में करता है।क्लोजर

एजेंटों का उपयोग करके क्लोजर में मैं वही काम कैसे करूं?

+0

आपको इस [स्टैक-एक्सचेंज प्रस्ताव] में रुचि हो सकती है (http://area51.stackexchange.com/proposals/11464/code-review?referrer=aWNm_PdciyFqjFW8CUacGw2 "कोड समीक्षा")। यह बीटा शुरू करने के लिए लगभग तैयार है, बस कुछ और की जरूरत है। – greatwolf

उत्तर

2

आपको एजेंटों का उपयोग करके ऐसा करने की आवश्यकता क्यों है? क्योंकि आप उन्हें अतुल्यकालिक रूप से कॉपी करना चाहते हैं?

(do-all (for [x file-names] (send-off agent-name copy-function x))) 

हालांकि, हो सकता है यह वायदा उपयोग करना बेहतर है: लेकिन अगर आप अभी भी ऐसा करना चाहते हैं, तो आप की तरह कुछ का उपयोग कर सकते हैं?

+0

मैंने सोचा कि एजेंटों का मुद्दा यह है कि वे कुछ राज्य बनाए रखते हैं जिन्हें एक समारोह पारित करके ** बदला जा सकता है **। मुझे लगता है कि अगर आपको पिछले मूल्य की परवाह नहीं है, लेकिन बस कुछ एसिंक्रोनस काम करने के लिए एजेंट का उपयोग करना चाहते हैं, तो आप एक प्रतिलिपि फ़ंक्शन पास कर सकते हैं जो पिछले मान को अनदेखा करता है। – Ralph

+0

हां, सुनिश्चित करें - आप कुछ राज्य डेटा एजेंट –

+1

में स्टोर कर सकते हैं यदि आप एजेंटों में एक राज्य को स्टोर नहीं करेंगे तो भविष्य में अतुल्यकालिक कार्य करने के लिए भविष्य का उपयोग करना बेहतर होगा। –