Piszę narzędzie w Scali, które zawiera aktora "kopia pliku". Wysyłam nazwy plików do skopiowania, a aktor robi je po jednym na raz.Aktorzy w Clojure
Jak zrobić to samo w Clojure za pomocą agentów?
Piszę narzędzie w Scali, które zawiera aktora "kopia pliku". Wysyłam nazwy plików do skopiowania, a aktor robi je po jednym na raz.Aktorzy w Clojure
Jak zrobić to samo w Clojure za pomocą agentów?
Dlaczego musisz to zrobić za pomocą agentów? ponieważ chcesz je skopiować asynchronicznie? Ale jeśli nadal chcesz to zrobić, możesz użyć czegoś takiego:
(do-all (for [x file-names] (send-off agent-name copy-function x)))
chociaż, może lepiej użyć futures?
Myślałem, że celem agentów jest to, że utrzymują jakiś stan, który można ** zmienić **, przekazując funkcję. Przypuszczam, że jeśli nie dbasz o poprzednią wartość, ale po prostu chcesz użyć agenta do wykonania pracy asynchronicznej, możesz przekazać funkcję kopiowania, która ignoruje poprzednią wartość. – Ralph
Tak, na pewno - można przechowywać pewne dane o stanie do agenta –
Jeśli nie zamierzasz przechowywać stanu w agentach, lepiej jest użyć przyszłości do wykonania pracy asynchronicznie. –
Możesz być zainteresowany tą [propozycją wymiany stosu] (http://area51.stackexchange.com/proposals/11464/code-review?referrer=aWNm_PdciyFqjFW8CUacGw2 "recenzja kodu"). Jest prawie gotowy do rozpoczęcia beta, wystarczy kilka dodatkowych. – greatwolf