秀... F#不再具有IEnumerable.map_with_type ......这是人的方式是对集合的映射.我现在该怎么办?
let urlPat = "href\\s*=\\s*(?:(?:\\\"(?<url>[^\\\"]*)\\\")|(?<url>[^\\s]* ))";;
let urlRegex = new Regex(urlPat)
let matches =
urlRegex.Matches(http("http://www.google.com"))
let matchToUrl (urlMatch : Match) = urlMatch.Value
let urls = List.map matchToUrl matches
Run Code Online (Sandbox Code Playgroud)
谢谢!
Tom*_*cek 13
你会像这样写下最后一行:
let urls = Seq.map matchToUrl (Seq.cast matches);;
Run Code Online (Sandbox Code Playgroud)
这可以使用流水线操作符以更好的方式编写:
let urls = matches|> Seq.cast |> Seq.map matchToUrl;;
Run Code Online (Sandbox Code Playgroud)
F#自动确定什么是正确的目标类型(因为它知道什么matchToUrl样的).这仅适用于Seq,因此您可以使用List.of_seq再次将数据导入列表.