2011-01-13 15 views
5

Estoy escribiendo una utilidad en Scala que incluye un actor de "copia de archivo". Envío nombres de archivos para copiar y el actor los hace uno a la vez.Actores en Clojure

¿Cómo podría hacer lo mismo en Clojure usando agentes?

+0

Puede que le interese este [stack-exchange proposal] (http://area51.stackexchange.com/proposals/11464/code-review?referrer=aWNm_PdciyFqjFW8CUacGw2 "revisión del código"). Está casi listo para comenzar la versión beta, solo necesita algunos más. – greatwolf

Respuesta

2

¿Por qué necesita realizar esto usando agentes? porque quieres copiarlos de forma asincrónica? Pero si aún desea hacer esto, puede usar algo como:

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

aunque, tal vez es mejor usar futuros?

+0

Pensé que el punto de los agentes es que mantienen un estado que ** puede modificarse ** pasando una función. Supongo que si no le importa el valor anterior, pero simplemente desea utilizar el agente para realizar un trabajo asincrónico, puede pasar una función de copia que ignora el valor anterior. – Ralph

+0

Sí, claro, puede almacenar algunos datos de estado en el agente –

+1

Si no va a almacenar un estado en los agentes, entonces es mejor usar un futuro para hacer el trabajo de forma asincrónica. –

Cuestiones relacionadas