2009-11-05 34 views
1

如果我將一個函數映射到一個序列上,並行實現序列將會在多遠的地方實現 如果我從一個並行生成的序列中讀取單個線程?seque和pmap之間的相互作用

將這個是不同的,如果我在塞克把它包:

(seque 30 (pmap do-stuff (range 30000))) 

(pmap do-stuff (range 30000)) 

回答

1

PMAP沒有提供它將如何遙遙領先閱讀它的輸入序列保障 - 大概沒有比它做計算所需要的更遠。

(seque 30 ...)將實現並緩存多達30個元素,從pmap的輸出序列。這在邏輯上必須至少是輸入序列中的前30個。如果不考慮pmap的實現,你可能不應該依賴於pmap的實現,那麼我還有多遠呢。

我很好奇爲什麼你需要知道這一點。函數執行的細節,特別是在pmap中,通常是想把抽象掉。如果它好奇,太好了。但是,如果你依賴於do-stuff函數的一些副作用,那麼你就是做錯了(tm)。

+0

curriosity主要:) – 2009-11-05 22:39:44