2011-01-13 14 views
5

Sto scrivendo un'utilità in Scala che include un attore di "copia di file". Invio nomi di file da copiare e l'attore li fa uno alla volta.Attori in Clojure

Come dovrei fare la stessa cosa in Clojure usando agenti?

+0

Potresti essere interessato a questa [proposta di scambio dello stack] (http://area51.stackexchange.com/proposals/11464/code-review?referrer=aWNm_PdciyFqjFW8CUacGw2 "revisione del codice"). È quasi pronto per iniziare la versione beta, ne servono altri ancora. – greatwolf

risposta

2

Perché è necessario eseguire questo utilizzando agenti? perché vuoi copiarli in modo asincrono? Ma se vuoi ancora farlo, puoi usare qualcosa del tipo:

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

sebbene, forse è meglio usare il futuro?

+0

Ho pensato che il punto degli agenti è che mantengono uno stato che può essere ** alterato ** passando una funzione. Immagino che se non ti interessa il valore precedente, ma semplicemente vuoi usare l'agente per fare un lavoro asincrono, puoi passare una funzione di copia che ignora il valore precedente. – Ralph

+0

Sì, certo: è possibile memorizzare alcuni dati di stato nell'agente –

+1

Se non si intende memorizzare uno stato negli agenti, è preferibile utilizzare un futuro per eseguire il lavoro in modo asincrono. –