F#类型错误:字符串与异步<string> </string>

时间:2015-03-20 15:00:59

标签: types f#

我是编程新手,F#是我的第一个.NET语言。

以下是我到目前为止编写的一些代码:

let downloadFromWebsite (url: string) =
    async { 
        let uri = new System.Uri(url)
        let webClient = new WebClient()
        let! html = webClient.AsyncDownloadString(uri)
        printfn "Read %d characters from %s" html.Length url
        return html
        }

let results = downloadFromWebsite @"http://plato.stanford.edu"
printf "%s" results

以下是错误消息:

  

~vs8222.fsx(19,13):错误FS0001:这个表达式应该有   类型       字符串,但这里有类型       异步

出了什么问题?我应该做些什么改变?

1 个答案:

答案 0 :(得分:3)

resultsAsync<string>,而您使用的格式字符串需要string。您需要运行计算并获得结果,然后才能打印它。您可以使用Async.RunSynchronously

let results = downloadFromWebsite @"http://plato.stanford.edu" |> Async.RunSynchronously
printf "%s" results