Beginning Functional JavaScript : Uncover the Concepts of Functional Programming with EcmaScript 8