Skip to content

Instantly share code, notes, and snippets.

@DmitriyVlasov
Created November 1, 2015 21:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DmitriyVlasov/45b03fc49d9a63f84d0a to your computer and use it in GitHub Desktop.
Save DmitriyVlasov/45b03fc49d9a63f84d0a to your computer and use it in GitHub Desktop.
Пример использования провайдера типа CsvProvider из библиотеки FSharp.Data на примере получения таблицы медиа типов официально предоставляемых консорциумом IANA.
#I @"../../packages/FSharp.Data/lib/net40"
#r @"FSharp.Data.dll"
open FSharp.Data
[<Literal>]
let ianaCsvSample = "Name,Template,Reference
1d-interleaved-parityfec,application/1d-interleaved-parityfec,[RFC6015]"
type IanaMediaTypes = CsvProvider<ianaCsvSample>
let ianaMediaType =
["application"; "audio"; "image"; "message"; "model"; "multipart"; "text"; "video"; ]
|> Seq.map (fun fileName ->
fileName
|> sprintf "http://www.iana.org/assignments/media-types/%s.csv"
|> fun path -> IanaMediaTypes.Load(path)
|> fun csv -> csv.Rows |> Seq.map (fun row -> row.Name, row.Template))
|> Seq.concat
|> Seq.cache
ianaMediaType
|> Seq.take 3
|> Seq.iter (fun (name, template) -> printfn "%s%40s" name template )
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment