1
什麼是在標準F#庫中並行運行以下代碼的最輕量級和簡潔的方法?或者失敗,任何廣泛使用的附加庫?F#如何並行執行List.map
let newlist = oldlist |> List.map myComplexFunction
我能找到的最好的是
let newlist = oldlist |> List.map (fun x -> async { return myComplexFunction x }
|> Async.Parallel
|> Async.RunSynchronously
|> Array.toList
我不喜歡這個,因爲它是4線長,構造了一個數組,然後我必須做回一個列表。如果我正在使用數組,那很簡單,Array.parallel,但我想保留那個可愛的Immutable列表的功能純度。我簡直不敢相信沒有其他選擇,但到目前爲止一直無法找到。 任何建議嗎?
的'PSeq'模塊現在可以在[FSharp.Collections.ParallelSeq]中找到(http://fsprojects.github.io/FSharp.Collections.ParallelSeq/) 。 –