Soo ... 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
谢谢!
答案 0 :(得分:12)
你会像这样写下最后一行:
let urls = Seq.map matchToUrl (Seq.cast matches);;
这可以使用流水线操作符以更好的方式编写:
let urls = matches|> Seq.cast |> Seq.map matchToUrl;;
F#自动确定什么是正确的目标类型(因为它知道matchToUrl
的样子)。这仅适用于Seq,因此您可以使用List.of_seq
将数据再次输入列表。
答案 1 :(得分:3)
Seq.cast是您要找的吗?