我是编程新手,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:这个表达式应该有 类型 字符串,但这里有类型 异步
出了什么问题?我应该做些什么改变?
答案 0 :(得分:3)
results
是Async<string>
,而您使用的格式字符串需要string
。您需要运行计算并获得结果,然后才能打印它。您可以使用Async.RunSynchronously
:
let results = downloadFromWebsite @"http://plato.stanford.edu" |> Async.RunSynchronously
printf "%s" results