Sample HOF application

Let’s build a sample app that will demonstrate the benefits of applying functional programming concepts to Go.

Our app will read from the following cars.csv file:

"Honda Accord"
"Honda Accord ES2"
"Lexus IS250"
"Honda CR-V"
"Lexus SC 430"
"Ford F-150"
"Toyota Highlander"
"Toyota RAV4"
"GM Hummer H2"
"GM Hummer H3"

We will apply high-order functions and various functional programming constructs to the list of cars to filter, map, reduce, and transform it to our heart's content.
Our project is structured as follows:

$ tree
.
├── README.md
└── chapter4
├── 01_hof
│ ├── cars.csv
│ ├── cars.go
│ ├── generator.go
│ ├── more_cars.csv
│ ├── restful.go
│ ├── types.go
│ └── utils.go
└── main.go

At the root of the chapter4 directory is our main.go file. Since we plan to build a Go executable from main.go and run it, we use the package name of main and include a main() function.

The other files will be in a subdirectory named 01_hof, where hof stands for high-order functions.