2011-01-13 7 views
5

Ich schreibe ein Dienstprogramm in Scala, die einen "Akte Kopie" Schauspieler enthält. Ich sende Dateinamen, die kopiert werden sollen, und der Schauspieler tut sie einzeln.Schauspieler in Clojure

Wie würde ich das gleiche in Clojure mit Agenten tun?

+0

Dies könnte Sie interessieren [Stapel-Austausch-Vorschlag] (http://area51.stackexchange.com/proposals/11464/code-review?referrer=aWNm_PdciyFqjFW8CUacGw2 "Code-Review"). Es ist fast bereit, mit der Beta zu beginnen, braucht nur noch ein paar mehr. – greatwolf

Antwort

2

Warum müssen Sie dies mithilfe von Agenten durchführen? weil Sie sie asynchron kopieren möchten? Aber wenn Sie immer noch, dies tun möchten, können Sie so etwas wie verwenden:

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

obwohl, vielleicht ist es eine bessere Zukunft zu benutzen?

+0

Ich dachte, der Punkt der Agenten ist, dass sie einen Zustand beibehalten, der ** geändert werden kann, indem eine Funktion übergeben wird. Ich denke, wenn Sie sich nicht um den vorherigen Wert kümmern, sondern einfach den Agenten für asynchrone Arbeiten verwenden möchten, können Sie eine Kopierfunktion übergeben, die den vorherigen Wert ignoriert. – Ralph

+0

Ja, sicher - Sie können einige Statusdaten in Agent –

+1

speichern Wenn Sie keinen Zustand in den Agenten speichern möchten, ist es besser, eine Zukunft zu verwenden, um die Arbeit asynchron auszuführen. –