On Tuesday, 31 March 2020 at 04:00:28 UTC, User wrote:
I'd like to convert the following program to 2020 standards (i.e, replace the foreach block with a one-line code). I've tried much and I failed.

Here is how I'd do it.

Because the program downloads and then reads the local file unconditionally, I replaced it with byLine. This allows it to process the data as it is being downloaded, without first waiting to download everything.

import std;

void main()
{
immutable URL = r"https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv";;
        immutable country = "Poland";

        URL
                .byLine
                .map!(line => line.splitter(","))
                .enumerate
                .filter!(t => t.index == 0 || t.value.dropOne.front == country)
                .map!(t => t.value)
                .take(2)
                .each!writeln;
}

Reply via email to