Beginning functional Javascript : functional programming with JavaScript using ecmascript 6 (2017)