2011-01-13 28 views
5

我正在Scala編寫一個包含「文件副本」actor的實用程序。我發送要複製的文件名,並且演員一次完成一個文件名。Clojure的參與者

我將如何使用代理在Clojure中做同樣的事情?

+0

您可能對[棧交換方案](http://area51.stackexchange.com/proposals/11464/code-review?referrer=aWNm_PdciyFqjFW8CUacGw2「代碼審查」)感興趣。它幾乎準備好開始測試,只需要更多。 – greatwolf 2011-01-19 04:51:30

回答

2

爲什麼你需要使用代理執行此操作?因爲你想異步複製它們?但如果你仍然想這樣做,你可以使用類似的東西:

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

雖然,也許最好使用期貨?

+0

我認爲代理人的觀點是他們通過傳遞一個函數來維護一些可以被**改變的狀態**。我猜如果你不關心以前的值,而只是想用代理來做一些異步工作,那麼你可以傳遞一個忽略以前值的複製函數。 – Ralph 2011-01-13 15:59:20