2013-11-04 130 views
7

我有以下功能:F#陣列flatmap

let fetchTickerGroup (tickers: string[]) (sqlServer:SQLServerClient) (schema: string) = 
tickers |> Array.map(fun x -> sqlServer.FetchTimeSerie(schema,x)) 

該函數採用一個字符串數組,並通過sqlServer取出其通過sqlServer.FetchTimeSerie返回作爲List<b>其中b是一個自定義的對象的數據。 現在,映射數組意味着函數fetchTickerGroup返回List<b>[]

我想知道是否有可能以flatMap的結果,而不是僅僅映射數組值。

回答

12

我不知道什麼Flatmap是,但我想你想用*.collect

我認爲最好的解決辦法是這樣的

tickers |> Array.toList |> List.collect (fun x -> sqlServer.FetchTimeSerie(schema,x)) 

你需要轉換,這樣你只有列表或數組類型

+9

FlatMap,收集和的SelectMany是同一個概念 –

+1

不同的名字@ Gustavo:謝謝你,來自Scala,我用了一個不正確的術語。 – NoIdeaHowToFixThis