F# console app to get Corona virus data for Wales by county
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
open FSharp.Data | |
[<Literal>] | |
let SampleUrl = "file://" + __SOURCE_DIRECTORY__ + "/Sample.html" | |
[<Literal>] | |
let PageUrl = "https://phw.nhs.wales/news/public-health-wales-statement-on-novel-coronavirus-outbreak/" | |
type Page = HtmlProvider<SampleUrl> | |
[<EntryPoint>] | |
let main argv = | |
let page = Page.Load(PageUrl) | |
let rows = page.Tables.Table1.Rows | |
let authorityData = | |
rows | |
|> Array.take 22 | |
|> Array.map (fun row -> | |
let authority = row.``Local Authority`` | |
let cases = row.``Total number of cases as of 11am, 16 March`` | |
authority, cases) | |
let toBeConfirmed = (rows |> Array.skip 22 |> Array.head).``Total number of cases as of 11am, 16 March`` | |
let outsideWales = (rows |> Array.skip 23 |> Array.head).``Total number of cases as of 11am, 16 March`` | |
let total = (rows |> Array.last).``Total number of cases as of 11am, 16 March`` | |
authorityData | |
|> Array.sortBy (fun (authority, cases) -> -cases, authority) | |
|> Array.iter (fun (authority, cases) -> printfn "%s: %i" authority cases) | |
printfn "Area to be confirmed: %i" toBeConfirmed | |
printfn "Resident outside Wales: %i" outsideWales | |
printfn "Total: %i" total | |
0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment