We frequently encounter questions such as, "Just curious, what are the benefits of applying pure functional programming concepts to imperative languages (other than making the code hard to read for others)?"
In this chapter, we will address this common misconception using high-order functions.
Our goal in this chapter is to:
- Understand the characteristics of functional programming (FP)
- Understand the purpose of generics
- Understand how FP improves performance
- Understand currying
- Implement Map, Filter, and Reduce functions
- Implement lazy evaluation using Goroutines and a Go channel