У меня есть следующий код, который вернет seq
из DownloadLink
для этих адресов, которые могут быть проанализированы.Фильтровать и преобразовать `list option` в` list`?
type DownloadLink = { Url: string; Period: DateTime }
nodes |> Seq.map (fun n ->
let url = n.Attributes.["href"].Value
match url with
| Helper.ParseRegex "[a-zA-Z](?<period>\d{4})\.txt" [period] ->
{ Url = url; Period = period }
| _ ->
printfn "Cannot parse %s" url // Error
)
Однако, я получил следующее сообщение об ошибке в printfn
. Каков правильный способ его реализации? Должен ли я сделать это list option
первым, а затем отфильтровать эти None
элементов?
Error 1 Type mismatch. Expecting a string -> DownloadLink but given a string -> unit The type 'DownloadLink' does not match the type 'unit'
Спасибо. 'Seq.choose' здесь так полезен. В противном случае я решил сначала создать опцию «seq», отфильтровать элементы «Нет», а затем переназначить обратно в 'seq' из 'seq <опции DownloadLink>'. –
ca9163d9