我的代码F#Map.ofArray问题

时间:2014-05-10 10:15:42

标签: function f#

我是一个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.RemoveEmptyEntries) do
                        match row.Split([|','|]) with
                        | [|d; p; v |]-> ()
                        | _ -> ()
                |] |> Map.ofArray
            }

这是我的获取命令:

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 个答案:

答案 0 :(得分:2)

您需要从内部序列理解中获得匹配的值。目前还不清楚键和值的格式应该是什么,但你可以这样做:

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