在Clojure中,如何在集合中的所有項目都被處理後運行pmap等方法並調用函數?pmap在Clojure中完成後,如何調用函數?
1
A
回答
2
你可以用它在一個函數,將執行映射,並呼籲後,一些回調函數:
user> (defn pmap-callback [callback f & colls]
(let [res (doall (apply pmap f colls))]
(callback res)
res))
#'user/pmap-callback
user> (pmap-callback #(println "complete!" %)
+ [1 2 3] [4 5 6])
;;=> complete! (5 7 9)
(5 7 9)
2
從pmap
文檔字符串:
像地圖,除了應用˚F在平行下。半懶,因爲並行計算保持超前消耗,但不會 實現整個結果,除非需要。只有在f的時間占主導地位的計算密集型功能中才有用。
因此,pmap
結果將不會被完全計算,直到您要求結果序列的所有元素。與其他惰性序列一樣,您可以使用doall
(如果您需要保留整個評估序列內容)或dorun
(如果您只對由映射函數完成的副作用感興趣並且不需要評估的序列)。
要在計算完所有結果後執行函數,您可以在致電dorun
或doall
後直接調用它。
還值得注意的是,pmap
不是調度異步並行作業的工具,您可以在處理完成時收到通知。對於這種用例,Clojure core.async可能是更好的選擇。
相關問題
- 1. 如何在異步函數完成後才能調用函數?
- 2. hadoop map reduce vs clojure pmap函數
- 3. 如何在UIWebView shouldStartLoadingWithRequest方法調用完成後調用函數?
- 4. 在AJAX完成後調用window.load函數
- 5. Swift - 函數完成後如何調用函數?
- 6. jQuery:如何在`animate()`函數完成後觸發回調函數
- 7. 如何在SAJAXSource完成JQuery數據表後調用javascript函數
- 8. 在C#中調用者函數完成後執行函數#
- 9. React.js - 如何在另一個完成後調用setState函數
- 10. 如何在所有轉換完成後調用`callback`函數?
- 11. 如何在頁面加載完成後調用函數
- 12. 如何在navigator.geolocation.getcurrentposition完成後調用另一個js函數?
- 13. 如何在我的Collections.sort完成後調用函數?
- 14. 如何在頁面加載完成後調用函數
- 15. 如何在超時後調用函數功能完成?
- 16. Ajax調用完成後運行函數
- 17. 意向完成後調用函數
- 18. 動畫完成後調用函數
- 19. 完成.load後的調用函數
- 20. 功能完成後調用函數
- 21. AJAX完成後未能調用函數
- 22. 完成* ngFor後調用函數
- 23. 如何在AJAX調用數據庫完成後調用JS函數
- 24. 如何在補間效果完全在對象上完成後調用函數。
- 25. 如何在第一個函數完成後觸發函數調用
- 26. 如何在循環內完成異步函數之後調用函數?
- 27. Silverlight控件加載完成後,如何調用JavaScript函數?
- 28. 動畫完成後如何調用函數
- 29. Javascript中的回調函數完成後如何觸發事件?
- 30. rails,如何在ajax請求完成後編寫回調函數