2013-11-04 23 views
7

Aşağıdaki işlevi vardır:F # dizi flatmap

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

fonksiyon şeritlerinin dizisini alır ve sqlServer boyunca b özel bir tarif amacı, bir List<b> olarak sqlServer.FetchTimeSerie tarafından döndürülen veri getirir. Şimdi, dizinin eşlenmesi, fetchTickerGroup işlevinin List<b>[] döndürdüğü anlamına gelir.

Sadece dizi değerlerini eşlemek yerine flatMap sonucunun mümkün olup olmayacağını merak ediyordum.

cevap

12

Flatmap'un ne olduğuna dair bir fikrim yok ama bence *.collect'u kullanmak istiyorsunuz.

Ben en iyi çözümü sadece liste veya dizi türlerine sahip olacak şekilde dönüştürmek için gereken bir şey
tickers |> Array.toList |> List.collect (fun x -> sqlServer.FetchTimeSerie(schema,x)) 

gibi olacağını düşünüyorum

+9

FlatMap, toplayın ve SelectMany aynı kavram –

+1

için farklı isimler @ Gustavo: Teşekkürler, Scala'dan geliyor, uygunsuz bir terminoloji kullandım. – NoIdeaHowToFixThis