2016-02-26 109 views
0

我通過這個運行我的數據:F#預期類型列表中,但這裏的類型是[]

myData |> List.map(myAsyncMethod) |> Async.Parallel |> Async.RunSynchronously 

myData的是:MyDataType list,這就是我期待着回來,而是我得到[](我認爲是一個清單)...

無論如何,我不知何故需要將類型[]回到列表,或修復我的函數返回列表...或換出我的數據類型與[]兼容。

任何答案都可以,我只是需要它的工作(儘可能高效)。

+3

「myAsyncMethod」的類型是什麼樣的? '[]'是一個數組,確實有點令人困惑,因爲編寫一個實際的數組使用'[| |]'方括號。 – TeaDrivenDev

+0

這將有所幫助。 F#需要更好的錯誤消息和VS支持。當我回到我的電腦時,我會嘗試。 Async方法只是運行一個更新。 –

+1

絕對是。錯誤信息往往不僅僅是「錯誤的,修正!」,而解釋它們是一個經驗問題。 – TeaDrivenDev

回答

4

Async.Parallel將創建一個數組的輸出。

這很有意義,因爲您需要預先分配一些空間來返回結果,而不能使用列表。

您可以使用Array.toList將其轉換爲末尾的列表

+0

謝謝,這是有效的。只是改變我的數據使用數組而不是列表,因爲我認爲這會比試圖轉換它快。 –

相關問題