F # Map.ofArray с моим кодом

Я новичок F # и у меня проблемы с моим кодом, который я пишу, по какой-то причине раскол строки не работает, и только нулевой массив возвращается вызовом Map.OfArray.

код ниже:

let loaddata() =
 async {
 let! csv = sprintf "http://api.bitcoincharts.com/v1/trades.csv?symbol=bitstampUSD" |> fetch
 return
 [|
 for row in csv.Split([|'\n'|], StringSplitOptions.******************) do
 match row.Split([|','|]) with
 | [|d; p; v |]-> ()
 | _ -> ()
 |] |> Map.ofArray
 }

Это моя команда fetch:

let fetch (url:string) =
 async {
 let wp = new WebProxy()
 let request = System.Net.WebRequest.Create(url)
 let! resp = request.AsyncGetResponse()
 let ms= new MemoryStream()
 resp.GetResponseStream().CopyTo(ms)
 return (System.Text.Encoding.UTF8.GetString(ms.ToArray()))
 }
1 ответ

Вам нужно дать согласованные значения из вашего понимания внутренней последовательности. Неясно, какой должен быть формат ключей и значений, но вы можете сделать что-то вроде:

return
 [|
 for row in csv.Split([|'\n'|], StringSplitOptions.******************) do
 match row.Split([|','|]) with
 | [|d; p; v |]-> yield (d, p)
 | _ -> yield! [||]
 |] |> Map.ofArray

licensed under cc by-sa 3.0 with attribution.