November 2017
Intermediate to advanced
670 pages
17h 35m
English
Note that Go supports all three of those styles of programming. Originally, idiomatic Go programming style directed us to code using for loops. That is beginning to change. Similarly, Java was originally a mix of object-oriented and imperative coding styles. Java supported Generics in 2004 to provide type safety for collections and to eliminate the need of typecasting. 8 years later, Java added support for lambda expressions.
The JDK's java.util.stream package leverages FP language features to provide aggregate operations on data structures like collections and arrays in a declarative and parallel-processing-friendly manner.